Skip to content

Add Product & SKU Management PRD#4177

Open
Corw1n-of-Amber wants to merge 1 commit into
constructorfabric:mainfrom
Corw1n-of-Amber:add-product-sku-prd
Open

Add Product & SKU Management PRD#4177
Corw1n-of-Amber wants to merge 1 commit into
constructorfabric:mainfrom
Corw1n-of-Amber:add-product-sku-prd

Conversation

@Corw1n-of-Amber

Copy link
Copy Markdown

Summary

  • Adds a Product & SKU Management (catalog registry) PRD under gears/bss/product-sku/docs/PRD.md, following the Constructor Studio gears/cf-bss format (17-section outline, cpt-cf-bss-product-sku-* IDs).
  • Registry-only scope: system of record for Product, SKU, Category, Attribute, and CatalogVersion — identity, taxonomy, attributes/localization, lifecycle & versioning, approval-gated publishing, and catalog-wide immutable snapshots.
  • Commercial pricing (Plan/Price/PriceWindow/PriceList, price resolution, tier/volume/hybrid math, FX) is out of scope and delegated by reference to the Plan & Price and Tariffs PRDs.

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.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

💤 Files selected but had no reviewable changes (1)
  • gears/bss/product-sku/docs/PRD.md
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f8cf29f5-3e88-46cb-a27f-44aeef30f781

📥 Commits

Reviewing files that changed from the base of the PR and between 322a01f and 6d3aab4.

📒 Files selected for processing (1)
  • gears/bss/product-sku/docs/PRD.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Signed-off-by: Mikhail Fedorov <mikhail.fedorov@virtuozzo.com>
@dogbert2021

Copy link
Copy Markdown

we are reviewing SKU and Price Modeling and contact with the author, hopefully will resolve questions next week

@Artifizer
Artifizer requested a review from rostm July 10, 2026 11:04

@dogbert2021 dogbert2021 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved with amendments:

  1. Sellable / non-sellable flag —we need a dedicated field is a CF Design-phase decision

diffora added a commit to diffora/gears-rust that referenced this pull request Jul 16, 2026
…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).
@Corw1n-of-Amber

Copy link
Copy Markdown
Author

approved with amendments:

  1. Sellable / non-sellable flag —we need a dedicated field is a CF Design-phase decision

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants