Product factory
product.spec.yaml, the generator, what a product owns and what it inherits.
Docs version: supercore main · packages 1.0.0
PipelineLink to this section: Pipeline
Three parts: the product-owned spec, the generator script, and the module registry that pins every shared module to the package that owns it.
- 01
Idea
- 02
Domain
- 03
Modules
- 04
Product shell
- 05
Deployment
product.spec.yamlLink to this section: product.spec.yaml
Validated against factory/schema/product.spec.schema.json. Tabs with module: and widgets of type module emit no code; the inherited shell handles them.
apiVersion: after.ai/v1
kind: SuperApp
metadata:
name: SuperAirport # PascalCase, must start with a capital
package: super_airport # snake_case pubspec name
bundle: com.overstein.superairport
productLine: enterprise # consumer | enterprise
spec:
domain: Airport / aviation operations
reference: SuperHospital # SuperGarage | SuperHospital
features: # VERTICAL ONLY. No OS modules here.
- id: flights
titleKey: features.flights
icon: flight_takeoff_outlined
requiredPermission: airport.flights.read
navigation:
tabs: # 2–6 tabs, matching family shell
- id: home
labelKey: nav.home
- id: flights
labelKey: nav.flights
feature: flights
- id: tasks
module: tasks # inherited OS module — no code emitted
permissions:
- airport.flights.read
- airport.gates.write
branding:
accent: "#0EA5E9"
monogram: SASource supercore/docs/PRODUCT_FACTORY.md (opens in a new tab)
Owned versus inheritedLink to this section: Owned versus inherited
The product owns
- Name, package, bundle, product line
- Vertical features and i18n keys
- Navigation tabs
- RBAC permission strings
- Dashboard widgets
- AI skills and tool bindings
- Accent color and monogram
The platform provides
- Auth and superadmin
- Membership or organization
- RBAC engine and audit log
- Calendar, tasks, documents
- Notifications and analytics
- Workflow, dashboard and search engines
- Design system, splash, CI
CommandsLink to this section: Commands
powershell -File scripts\validate_product_spec.ps1 -SpecPath factory\specs\examples\super_airport.product.spec.yaml# From a spec
powershell -File scripts\generate_product.ps1 -SpecPath factory\specs\examples\super_airport.product.spec.yaml
# From a name only (quick starter)
powershell -File scripts\generate_product.ps1 -Name SuperAirport -Reference SuperHospital
# Preview without writing files
powershell -File scripts\generate_product.ps1 -SpecPath factory\specs\examples\super_airport.product.spec.yaml -DryRuncd ..\superairport
flutter create .
flutter pub get
flutter analyze
flutter testSource supercore/scripts/generate_product.ps1 (opens in a new tab)
RegenerationLink to this section: Regeneration
Re-running the generator with an evolved spec updates skeleton files without destroying human-authored feature code.