CRM job catalogue
Contract & Subscription
Milestone 12 implemented for the local slice — ADR-018 addendum, docs/CONTRACT_ACTIVATION.md
10 jobs in this area. 2 partially supported, 8 not supported.
validated end to end An automated test or a checked-in example proves the whole job. This is the only status that counts as evidence.
partially supported Part of the job works and is proved; the rest is named rather than implied. Read what is excluded before planning around it.
technically supported The primitives exist but no test proves the job end to end, so it is not claimed as working.
not supported No implementation and no test. It would have to be built. This is the default status in the catalogue — a row moves out of it only when a test proves it.
JTBD-CS-01 · Activate a commercial contract from a signed Order
partially supported
order.activate-contract (human actor only) creates one contract, its immutable version and one line per order component, atomically and idempotently, with every amount copied…
tests/contracts-activation-e2e.test.jstests/contracts-review.test.jsJTBD-CS-02 · Activate a subscription with lines and an initial term
partially supported
one subscription per contract, with a line for every component whose commercial axis is subscription — including recurring components that also carry a service or delivery…
JTBD-CS-03 · Amend seats or quantity on a live subscription
not supported
no amendment primitives
JTBD-CS-04 · Record an expansion or contraction, classified at the time of change
not supported
no amendment classification
JTBD-CS-05 · Calculate MRR, ARR and TCV from real contract data
not supported
deliberately not derived — M12 now provides a term and an active subscription, but normalizing unlike periods into one figure is a stated business policy that does not exist…
JTBD-CS-06 · Schedule a renewal ahead of term end
not supported
needs both this layer and a scheduler (JOBS_AND_OUTBOX.md)
docs/strategy/JOBS_AND_OUTBOX.mdJTBD-CS-07 · Create a renewal opportunity from an expiring subscription
not supported
needs CS-06
JTBD-CS-08 · Apply a versioned price-uplift policy at renewal
not supported
the versioned-policy mechanism exists (ADR-015/016/018) and M12 uses it to classify, but the renewal domain does not exist
JTBD-CS-09 · Cancel or non-renew with an audited reason
not supported
no cancellation primitives
JTBD-CS-10 · Read a complete amendment history
not supported
no amendments exist; what M12 does record is the activation itself — who activated, from which order, under which policy version, and both classification axes with their reasons…
What a status here does not mean
These statuses describe this repository at this commit. None of them implies the framework is deployable: there is no authentication, tenancy or RBAC, so it is local-development-only whatever any row says. Every claim and every limitation is on one page.