Document Details

Purpose

This specification defines functional and nonfunctional requirements for recipe, menu, forecasting, production, inventory, review, export, and operational controls.

View or Download

Document Preview

Requirements

Status Note

These draft requirements combine current-state operating gaps with implemented and planned prototype behavior. Stakeholder approval remains outstanding.

Business Requirements

ID Requirement Status Evidence Quality Evidence
BREQ-001 The system shall support a staged commercial-kitchen operating loop from recipe identity through menu planning, forecasting, production recording, and inventory. Implemented MVP Observed README.md, AGENT.md
BREQ-002 The system shall preserve Recipe Collection item identity as culinary identity reused by downstream workflows. Implemented MVP Observed docs/agent_context/recipe_collection.md
BREQ-003 The system shall keep Inventory catalog/vendor identity separate from Recipe Collection item identity. Implemented draft/MVP Observed docs/agent_context/inventory.md, database/schema.sql
BREQ-004 The system shall support role-based review before recipes become live production items. Implemented MVP Observed src/services/workflow_service.py
BREQ-005 The system shall support production-facing forecasts and posted production facts for downstream reporting. Implemented MVP Observed src/services/production_record_service.py
BREQ-006 The system shall provide inventory planning without slowing the main inventory dashboard. Implemented MVP Observed docs/agent_context/inventory.md
BREQ-007 The system shall stage invoice/vendor data before treating it as accounting truth. Implemented draft direction Observed docs/agent_context/inventory.md, invoice schema
BREQ-008 The future-state prototype shall address corporate current-state gaps in mass-to-volume conversion and commercial-kitchen unit scaling. Future-state objective User-provided/Observed User clarification; recipe/unit services
BREQ-009 The future-state prototype shall support sub-recipe ingredient rollups so nested recipes contribute to scaled demand. Future-state objective User-provided/Observed User clarification; recipe flattening/scaling services
BREQ-010 The future-state prototype shall connect menu forecasting to production records and forecast accuracy analysis. Future-state objective User-provided/Observed User clarification; production record services
BREQ-011 The future-state prototype shall support ordering forecast direction from menu/recipe demand and inventory facts. Future-state objective User-provided/Observed User clarification; inventory planning services

Functional Requirements

ID Requirement Status Evidence Quality Acceptance Criteria
FREQ-001 Users can create base foods with unique normalized names. Implemented Observed Duplicate creation returns or suggests a suffixed name.
FREQ-002 Users can create recipes with yield, ingredients, method, and instructions. Implemented Observed Missing required recipe fields produce validation errors.
FREQ-003 Authorized workflow users can move items through submitted/reviewed/approved/analyzed/live/rejected states. Implemented Observed Invalid role/action combinations are blocked; required reasons are enforced.
FREQ-004 Menu owners can create dated menus and materialize slots from selected service days, meal periods, and concepts. Implemented Observed Menu creation creates the expected slot count.
FREQ-005 Menu users can copy, paste, and clear menu slot assignments by cell/day/week/concept scope. Implemented Observed Route/service tests pass assignment reuse scenarios.
FREQ-006 Forecast users can save yield, case, serving, case-pack, and batch-split forecast data. Implemented Observed Batch splits totaling other than 100 are rejected.
FREQ-007 Production users can snapshot forecast rows, record actuals/variance, post records, export CSV, and view history. Implemented Observed Posted facts exclude drafts and production record posting requires recorded lines.
FREQ-008 Inventory users can create locations/sub-locations, count items, reorder rows/breaks, transfer rows, print count sheets, and view current on hand. Implemented Observed Inventory route and service tests cover count/current-on-hand behavior.
FREQ-009 Inventory users can review catalog matches and manage approved substitutes. Implemented draft Observed One preferred active substitute is enforced per catalog item.
FREQ-010 Inventory users can stage vendor invoice lines, auto-match by vendor code, manually link unmatched lines, and place lines into grouped sub-locations. Implemented draft Observed Invoice service tests cover staging, matching, linking, placement, and substitutes.
FREQ-011 Dev users can generate seed data and operating data for manual workflow testing. Implemented Observed Dev automation tests cover menus, records, inventory, and invoices.
FREQ-012 Users can scale recipes using measurement authority that supports same-family and mass/volume bridge conversions. Implemented User-provided/Observed Unsupported conversions produce warnings rather than silent bad quantities.
FREQ-013 Users can use hotel-pan units in live scaling and Forecasting contexts. Implemented User-provided/Observed Advanced units are available where production planning needs them and restricted from basic authoring.
FREQ-014 Users can view nested recipes as hierarchical and flattened ingredient rollups. Implemented User-provided/Observed Flattening expands sub-recipe ingredients and preserves warnings for problematic conversions/cycles.
FREQ-015 Users can analyze forecast accuracy from production actuals and variance. Implemented / expanding User-provided/Observed Production records calculate implied demand and forecast accuracy; history and item trends are available.
FREQ-016 Users can generate inventory planning signals from upcoming menu/recipe demand and current on hand. Implemented / expanding User-provided/Observed Planning rows expose coverage, shortage/review status, and ordering-window context.

Non-Functional Requirements

ID Requirement Status Evidence Quality
NFR-001 The app should remain lightweight and local-first using Flask, SQLite, server-rendered templates, and focused JavaScript. Current architecture Observed
NFR-002 Expensive calculations should not block first-screen dashboards. Implemented pattern Observed
NFR-003 Business calculations should live in service/query layers, not templates. Documented standard Observed
NFR-004 Schema changes should use forward-only migrations and update database/schema.sql. Documented standard Observed
NFR-005 Tests should be scoped by module/relation markers for focused validation. Implemented Observed
NFR-006 Production security, authentication, backup, deployment, and data retention requirements are needed before live production use. Not defined Inferred/Unknown

Assumptions and Dependencies

  • Inferred: SQLite remains acceptable while the product is local-first/MVP and data volume is limited.
  • Inferred: Mock auth is acceptable for development and role testing only.
  • Observed: Future Analytics depends on stable menu, usage, inventory, purchasing, cost, and production-variance contracts.
  • User-provided: The corporate current-state gap examples are accepted as initial future-state drivers for this analysis.
  • Unknown: Stakeholder approval is required before treating these prototype requirements as official replacement-system requirements.

BA Alignment

  • Activity areas: Manage requirements lifecycle; analyze requirements and define design options.
  • Techniques used: Requirements analysis, acceptance criteria, document analysis, interface analysis.

Related case study