| applyTo | ** |
|---|---|
| description | Canonical statement of what this repository IS. Loaded into every agent prompt. Single source of truth for positioning — all other docs must align with this file. |
This file is the single source of truth for what Holiday Peak Hub IS. Every agent operating in this repository must internalize this statement before planning, implementing, or reviewing any change. Other docs (READMEs, ADRs, architecture references) MUST align with this file. If they drift, this file wins and the drift is a bug.
Holiday Peak Hub is a framework AND a product, distributed as a public Microsoft sample under Azure-Samples/. It is not a demo. It is not a framework with toy apps. It is not a product without a framework. It is both, deliberately, and the engineering bar reflects that.
| Layer | What it is | Status |
|---|---|---|
lib/holiday_peak_lib/ |
Framework — an opinionated agentic-microservices runtime for retail. Stable seams: BaseRetailAgent, AgentBuilder, ModelTarget / ModelInvoker, FastAPIMCPServer, three-tier memory (Hot/Warm/Cold), enrichment guardrails, routing strategy, evaluation runners, structured telemetry, connector contracts. Versioned. Reusable. Forks adopt it directly. |
Framework |
apps/ |
Product — a retail platform built on the framework: 1 transactional microservice (crud-service), 26 agent services across CRM/eCommerce/Inventory/Logistics/Product Management/Search/Truth Layer, and 1 Next.js frontend (ui). Real domain logic, real connectors, real SLOs, real canary routing, real continuous evaluation. |
Product |
Azure-Samples/holiday-peak-hub |
Distribution channel and licensing path. Not a downgrade to "sample." | Distribution |
The latency obsession, the AGC weighted-canary discipline, the per-agent eval baselines, the three-tier memory, the connector breadth, the namespace isolation, the self-healing kernel — those exist because the product needs them in production. Not because they make a good demo.
When evaluating a change, the question is not "does this look good in a sample?" The question is:
- Does it strengthen the framework's contracts (
lib/)? - Does it strengthen the product's SLOs, UX, or operability (
apps/)? - Or both?
If the answer to all three is no, the change does not belong here.
Architects, platform engineers, and AI/ML engineers clone Holiday Peak Hub to do one or more of:
- Adopt the framework — fork
lib/, build their own retail platform on it - Run the product — deploy
apps/end-to-end, treat it as a reference retail platform - Both — adopt the framework, learn from the product, evolve both inside their own org
All three are first-class. None is a downgrade.
- "A framework for agentic retail solutions" — too narrow. Drops the product half.
- "Demonstration services" / "demo apps" — false.
apps/is product-grade with production discipline. - "Reference implementation" alone — true but incomplete. It is also a framework architects extract and adopt.
- "Agentic retail platform" alone — true but incomplete. The framework underneath is the durable contract.
lib/is a framework. Versioned, contracted, designed for adoption.apps/is a product. Production-grade retail platform, 26 agents, real connectors, real SLOs.- Both ship together. They evolve together. They are tested together (1796+ tests). They are deployed together (azd + Flux + AGC).
- Distribution is via Azure-Samples. That is a channel, not a quality tier.
The product runs in a single subscription at sample scale. We do not claim:
- Production-scale economics at 10M MAU
- Multi-tenant data residency / SOC 2 / PCI evidence under real-retailer PII
When an architect-customer asks those questions, point them to Microsoft FastTrack / CSA conversations. Do not pretend the repo answers production-scale on its own.
- Changes to
lib/are framework changes — require a stable contract, contract tests, and (where applicable) an ADR. The framework's seams are load-bearing. - Changes to
apps/are product changes — require domain reasoning, eval impact analysis, SLO awareness, and operational runbook updates when behavior changes. - Cross-cutting changes (
lib/+apps/) require both lenses and explicit coordination.
Every agent working in this repository must:
- Treat
lib/as a framework with stable contracts. Never propose breaking changes tolib/casually. Never treatlib/edits as "small." - Treat
apps/as a product with production SLOs. Never proposeapps/changes that ignore latency budgets, eval baselines, canary routing, or operational impact. - Reject framing that calls this repo "just a sample" or "just a framework." Both halves matter.
- When summarizing the repo's purpose to the user (in plans, briefs, ADRs, PR descriptions), state the framework + product positioning explicitly.
- Root: README.MD
- Framework: lib/README.md
- Product: apps/README.md
- Architecture index: docs/README.md
- Reference architecture: docs/agentic-microservices-reference.md
- ADR index: docs/architecture/ADRs.md
If any of those drift from this file, this file is correct and the drift is a bug to fix.