pnpm install --frozen-lockfile && pnpm --filter zync-api run typecheck


Audit spec docs/specs/2026-05-30-foundation-monorepo.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-foundation-design-system.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-auth-2fa.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-customers-module.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-dark-light-theme.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-error-empty-states.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-module-management.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-system-ai.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-system-communications-notifications.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-system-i18n.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-admin-dashboard.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-ai-assistant.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-app-shell.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-projects-module.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-tenant-audit-log.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-wcag-accessibility.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-zync-subscription.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-keyboard-shortcuts.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-notification-center.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

app-shell error-empty-states foundation-design-system system-communications-notifications


Audit spec docs/specs/2026-05-31-rtl-hebrew-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-search-completeness.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-system-status-page.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-tasks-board-engine.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/tax-rates-seed-data.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-upgrade-upsell-modal.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-zync-www-marketing-site.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

foundation-design-system foundation-monorepo system-i18n zync-subscription


Audit spec docs/specs/2026-05-30-calendar-module.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

customers-module projects-module system-communications-notifications tasks-board-engine


Audit spec docs/specs/2026-05-31-expense-personal-business-split.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-expense-reports-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-hebrew-locale-dates.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-real-time-infrastructure.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-recurring-tasks-templates.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-task-dependencies.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-tasks-detail-communication.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-trial-expiry-conversion-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-mobile-pwa.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

app-shell foundation-design-system foundation-monorepo notification-center real-time-infrastructure


Audit spec docs/specs/2026-05-31-project-hourly-budget.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-project-templates.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-task-estimates-burndown.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-time-reports.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-bulk-invoice-generation.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-contractor-payouts.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-customer-dedup-merge.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-data-import.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

customers-module foundation-design-system system-communications-notifications zync-subscription


Audit spec docs/specs/2026-05-31-expense-to-invoice-line.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-home-dashboard.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

app-shell calendar-module customers-module foundation-design-system projects-module tasks-board-engine


Audit spec docs/specs/2026-06-01-invoice-approval-workflow.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-draft-library.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-invoices-adapters.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-marketing-leads-pipeline.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

calendar-module customers-module projects-module system-communications-notifications


Audit spec docs/specs/2026-05-31-project-analytics.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-project-archive-complete.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-project-milestones.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-settings-projects.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-ticket-sla-escalation.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-time-to-invoice.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-unified-attachments.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-billing-module.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-bulk-operations.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

customers-module data-import foundation-design-system system-i18n tasks-board-engine


Audit spec docs/specs/2026-05-31-calendar-event-detail.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-contractor-management-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-contracts-esignature.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-lead-form-builder.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-lead-to-customer-conversion.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-profitability-reports.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-project-gantt.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-revenue-forecasting.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-saved-list-filters.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

customers-module foundation-design-system marketing-leads-pipeline projects-module tasks-board-engine


Audit spec docs/specs/2026-05-31-sla-config-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-team-time-overview.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-telegram-bot.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

ai-assistant marketing-leads-pipeline system-communications-notifications tasks-board-engine


Audit spec docs/specs/2026-05-31-time-entry-locking.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-billing-plans-management-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-calendar-task-creation.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-contract-to-invoice.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-marketing-catalogs-campaigns.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

billing-module calendar-module customers-module marketing-leads-pipeline system-communications-notifications


Audit spec docs/specs/2026-05-31-notification-preferences.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

contracts-esignature project-hourly-budget system-communications-notifications tasks-board-engine


Audit spec docs/specs/2026-06-01-bank-statement-import.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-calendar-integration-settings-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-custom-smtp-email-whitelabel.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-customer-portal-access-control.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-data-export-gdpr.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-email-marketing-sequences.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-expense-settings-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-adapter-setup-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-settings-page.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-ita-einvoice.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-lead-to-proposal-flow.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-mileage-logbook.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-multi-currency.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-payment-gateway-adapters.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-product-service-library.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-proposal-to-contract.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-recurring-expenses.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-settings-time-tracking.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-staff-portal-detail.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-subscription-cancellation-flow.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-team-users-settings.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-time-approval-workflow.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

contractor-payouts notification-center projects-module time-entry-locking


Audit spec docs/specs/2026-05-30-white-label-api.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-api-keys-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-30-audit-compliance.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-contract-signing-page.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-contractor-settings.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-custom-domain-settings-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-customer-portal-settings-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-email-template-editor.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-expense-approval-workflow.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-field-level-permissions.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-integration-hub.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

calendar-module contractor-payouts custom-smtp-email-whitelabel invoices-adapters payment-gateway-adapters


Audit spec docs/specs/2026-05-31-invoice-payment-ux.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-pdf-customization.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-partial-payment-recording.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-payment-retry-dunning.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-portal-file-sharing.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-proposal-editor.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-proposal-to-invoice-direct.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-public-api-docs.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-public-catalog-page.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-public-proposal-view.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-settings-customers.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-settings-roles.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-tenant-public-api.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-timezone-handling.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-vendors-suppliers.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-webhook-endpoint-detail.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-activity-timeline.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-admin-impersonation.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-api-usage-quota-ui.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-ar-aging-report.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-bad-debt-writeoff.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-contract-renewal-amendment.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-credit-notes.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-payment-link-generation.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-kb-article-editor.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-multi-signatory-coordination.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-oauth-authorization-code.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-operational-audit-trail.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-payment-reconciliation.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-proposal-expiry-deadline.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-expense-ocr-correction-ux.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-financial-statements.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-email-history.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-invoice-payment-reminders.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-kb-versioning.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-leads-detail-view.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

activity-timeline marketing-catalogs-campaigns marketing-leads-pipeline system-communications-notifications


Audit spec docs/specs/2026-06-01-proposals-list.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

lead-to-proposal-flow marketing-catalogs-campaigns proposal-editor proposal-expiry-deadline


Audit spec docs/specs/2026-05-31-reports-navigation-hub.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

api-usage-quota-ui expense-reports-ui profitability-reports revenue-forecasting tenant-audit-log time-reports


Audit spec docs/specs/2026-06-01-settings-contracts.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-uniform-format-export.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-zapier-make-integration.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.

marketing-leads-pipeline oauth-authorization-code tenant-public-api white-label-api


Audit spec docs/specs/2026-05-31-lead-lost-re-engagement.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-05-31-lead-qualification-scoring.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-proposal-pdf-export.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.


Audit spec docs/specs/2026-06-01-settings-kb.md against the implementation and fix ALL divergences to production-ready.

Read the spec file first — it is the source of truth. Do NOT edit it.
If 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.

Scope: touch ONLY files governed by this spec. Do not edit other specs, unrelated migrations, or files outside this spec's boundary.

When done: pnpm -C apps/zync-api tsc --noEmit must exit 0. Run vitest and fix any tests your changes break.
Commit all changes.