Hermes 284313f908
Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Initial import of AlgaPSA codebase from PSA server
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz

Source: /opt/alga-psa on psa.joliet.tech
2026-06-22 16:12:17 -05:00

4.3 KiB

Feature-To-Subsystem Map

Purpose

Use this file to keep implementation progress traceable by subsystem instead of only by chronological feature order.

The feature list is intentionally long because the billing cutover spans runtime, persistence, read models, authoring, downstream consumers, rollout, and the later materialized-service-period ledger. This map is the index for that breadth.

Tracking Discipline

When completing work from features.json:

  1. identify the primary subsystem from the map below
  2. note any secondary subsystem surfaces touched by the same checkpoint
  3. update SCRATCHPAD.md with the concrete files and behavior changes
  4. keep commit messages scoped to the feature ID or the coherent subsystem slice being advanced

When adding new features:

  1. place the new feature inside the correct subsystem band
  2. update this map if the feature introduces a new subsystem or a new cross-cut seam
  3. avoid creating feature IDs whose subsystem ownership is ambiguous from the artifact set

Subsystem Bands

Subsystem Primary feature bands What lives here
Architecture, inventory, and parity scaffolding F001-F010, F111-F120, F147-F150 pass-0 inventory, parity harness, rollout staging, follow-on boundaries, operator/runbook artifacts
Shared recurring timing domain F011-F020 canonical service-period types, invoice-window types, cadence owners, due-position and coverage helpers
Client-cadence generation and parity engine F021-F040 anchored client periods, partial-period rules, first/final period semantics, zero-coverage behavior
Runtime recurring charge execution F041-F070, F143-F146, F256-F266 fixed/product/license timing, bucket timing, canonical runtime guardrails, eventual persisted-service-period runtime consumption
Invoice generation, persistence, and recurring billing runs F071-F080, F151-F190, F241-F242 due selection, preview/generate flows, duplicate prevention, billed-through, recurring execution identity, grouping rules, financial artifact semantics
Data model, repositories, APIs, and recurrence storage reconciliation F081-F090, F201-F230, F243-F255 cadence-owner persistence, compatibility readers/writers, repository cleanup, authoring-path storage normalization, regeneration and override policy
Authoring UI and recurring configuration surfaces F091-F097, F121-F124, F138-F145, F202-F210, F250-F258, F264-F266 contract-line configuration, wizards, templates, presets, dashboard copy, portal detail policy, future service-period inspection/editing surfaces
Reporting, portal readers, and accounting/export consumers F098-F100, F125-F133, F191-F200, F222, F225-F227 invoice readers, portal billing views, report date-basis policy, export adapters, projection-mismatch diagnosis
Contract cadence and mixed-cadence behavior F101-F110, F156-F160, F223 anniversary-based service periods, mixed-window grouping, contract-cadence due selection, contract-cadence scheduler cutover
Materialized service-period ledger F231-F270 persisted service-period schema, lifecycle state, provenance, generation, regeneration, editing, invoice linkage, repair flows

Cross-Cut Seams To Recheck During Every Pass

  • Runtime plus persistence: canonical recurring periods are only done when invoice detail writes and rereads stay coherent.
  • Reader plus export surfaces: any header-versus-detail semantic change must be checked in dashboard, portal, and export consumers.
  • Authoring plus storage: cadence-owner or timing defaults are only safe when wizard, template, preset, custom-line, repository, and API paths agree.
  • Rollout plus cleanup: staged compatibility work must stay explicit until source and DB validation prove the legacy seam is actually dead.

Minimum Coverage Expectation

Before declaring the plan complete, the implemented feature set must still be traceable across all of these surfaces:

  • runtime billing and timing domain
  • invoice generation and persistence
  • credits, prepayment, and negative-invoice flows
  • repositories, APIs, and recurrence storage
  • dashboard, wizard, template, and preset authoring
  • client portal, reporting, and accounting exports
  • rollout, cleanup, validation, and operator runbooks
  • persisted service-period ledger design and lifecycle