Add Product & SKU Management PRD#4177
Conversation
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. 💤 Files selected but had no reviewable changes (1)
⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Signed-off-by: Mikhail Fedorov <mikhail.fedorov@virtuozzo.com>
ab72d95 to
6d3aab4
Compare
|
we are reviewing SKU and Price Modeling and contact with the author, hopefully will resolve questions next week |
dogbert2021
left a comment
There was a problem hiding this comment.
approved with amendments:
- Sellable / non-sellable flag —we need a dedicated field is a CF Design-phase decision
…ns, products, UC feed The full BSS design program squashed to one commit against main (44 commits, 2026-06-28…2026-07-16). Docs only; gates green throughout (cfs validate / validate-toc / check-language). PRICING (Plan & Price Modeling — gears/bss/pricing): - PRD + complete 12-slice design set: Catalog Foundation (publish-through- the-engine, fail-closed validation, frozen read model + pricingSnapshotRef), plan definition, price structure & model kinds, currency/tax, governance (two-person materiality), consumer contracts, PriceWindow machinery consolidated into the gear (ADR-0003), bundles / price lists / advanced primitives, AuthZ (PEP catalog), lifecycle + operator efficiency; pricing_ table prefix; module renamed plan-price → pricing. - Decision register D-01…D-46 + R-01…R-14 closed; slice-walkthrough gap waves H1–H31; 8-axis canonical scope key; server-side price resolution. RATING (ex-Tariffs — gears/bss/rating): - Tariffs PRD vendored as baseline → cross-gear seam map vs pricing (SEAMS A–H: scope key, overlays, windows, snapshot, models/metering, proration/FX, governance/bundles) → resolutions propagated into the PRD. - Design slices 01–11 (pure-function evaluation core: foundation, selection/eligibility, metering models, overlays, commitments, coupons, FX, retroactivity, period/plan-change, governance/ASC606, consumer contracts). - ADR-0002: Tariffs + rating pipeline consolidated into ONE rating gear (rating-core no-I/O crate + pipeline); migration commits A–C; pipeline slices 12–16 authored (usage ingestion & normalization, windowed Q store & attribution, unit synthesis & period tick, rated output & delta dedup & balance effects, Billing handoff & operations). - Decision register T-D-01…T-D-17; SEAMS §I registry seams (RG1 open, RG2/RG3 closed) and §J Usage Collector ingestion bridge (UC1–UC6: transport gates slice-12, watermark, attribution join, dedup-key derivation, correction visibility, temporal shape). - usage_record hot/cold tiering posture (S3-compatible Parquet + digest- verified manifest to the ≥7y correction horizon). SUBSCRIPTIONS (gears/bss/subscriptions): - Single normative PRD (vendored VHP-806, merged with the predecessor entitlements PRD) + SEAMS + DESIGN set; SUB-D-01…12 (scheduled intents, updateQuantity, collectionPaused, ramps, activation date trio, transfer, void, grace polish); design-review veto batch + consistency passes. PRODUCTS registry (gears/bss/products — NEW): - Registry PRD vendored from constructorfabric PR constructorfabric#4177 @ 6d3aab4 (upstream-detach: this repo is canonical; provenance note kept); RG2 fix applied in text (unit ≠ dimension — declared dimension set is a plan-price concern; separate SKUs demoted rule → option; composite = output unit, inputs are units); gear renamed product-sku → products (dir + 135-id prefix); RG3 naming reconciled; registry pointers de-staled across subscriptions/pricing. USAGE-COLLECTOR (gears/system/usage-collector — proposal doc, NEW): - Phase-2 'Usage Event Feed & Ingestion Watermarks' PRD: durable per-tenant acceptedSeq feed (usage + compensations + status transitions), deterministic cursor replay, acceptance-progress watermarks, feed-lag NFR + ingestion non-regression, Plugin SPI accepted-order scan. Executes the v1 DESIGN §4 reserved hooks, additive under ADR-0006; driving consumer = rating pipeline slice 12. CROSS-CUTTING product decisions (2026-07-16, confirmed): - D-44 / T-D-17 — level-based billing into launch: aggregationFunction {sum, peak, time_weighted} + aggregationGranularity; granule fold over gauge samples, window Q = Σ folds (additive — every counter invariant untouched); cloudlet peak-per-hour, storage GB-month. - D-45 — first-class includedAllowance {quantity, rolloverPolicy}, publish-compiled (none → $0 first band + frozen marker; carry → D-43 per-period promotional grant, Billing executes). - D-46 — registry sellable flag + sellability-gate predicate 6 (standalone lines; bundle components exempt). - gears-rust declared the canonical home for BSS gear docs; vhp-architecture is legacy provenance (no drift-tracking obligation).
Agreed — a dedicated sellable/non-sellable field is deferred to the CF Design phase. For now sellability is derived from lifecycle state (only published/deprecated are sellable) + the metering-unit declaration, so nothing needs to change here to merge. Logged for the Product & SKU Design-phase agenda so it's not lost. Thanks for the review! |
Summary
gears/bss/product-sku/docs/PRD.md, following the Constructor Studio gears/cf-bss format (17-section outline,cpt-cf-bss-product-sku-*IDs).Validation
cfs validate --artifact gears/bss/product-sku/docs/PRD.md --skip-code --local-only→ 0 errors, 0 warnings.cfs validate-toc→ all TOCs correct.