====== FR-BAS-002 — Compose Selected Baselines ======
[[dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-09-baseline-composition-and-workspace:start|Go to C.3.9 Baseline Composition and Workspace]]
===== Statement =====
[[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] SHALL perform [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline_composition|Baseline Composition]] using one or more selected [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] and optional application source.
===== Derived From =====
This requirement derives from:
* Crucible System Requirements Specification, Version 1.1 Draft, Functional Requirements, FR-BAS-002
The Original Requirement states:
> //The system shall compose one or more selected baselines with optional application source.//[[dido:02-crusible:99-annexes:annex-b:cr-001|[C1]]]
FR-BAS-002:
* Replaces **The system** with the defined system name [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
* Changes **shall** to the established uppercase normative form **SHALL**
* Replaces **compose** with the controlled operation [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline_composition|Baseline Composition]]
* Links [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]] to its controlling definition
* Preserves **one or more** as the minimum composition cardinality
* Preserves application source as an optional input
No other substantive normalization is required.
===== Rationale =====
[[dido:99_annexes:annex-b-terms-and-definitions:b:baseline_composition|Baseline Composition]] combines selected [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] into a composition that Crucible can use in subsequent build, deployment, or validation operations.
The selected Baselines can include:
* [[dido:99_annexes:annex-b-terms-and-definitions:i:image_layer|Image Layers]]
* [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_baseline|Infrastructure Baselines]]
* Other Baseline types permitted by the controlling architecture
Application source can participate in the composition when the intended result requires application-specific content. Application source remains optional because a valid composition can contain only Image Layer Baselines, Infrastructure Baselines, or both.
This requirement establishes Baseline Composition without prescribing:
* A particular number of Baselines beyond one or more
* A particular Baseline type
* A particular [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline_repository|Baseline Repository]]
* A particular [[dido:99_annexes:annex-b-terms-and-definitions:r:revision|Revision]]
* A particular application-source repository
* A composition order
* Conflict-resolution behavior
* Dependency-resolution behavior
* A composition format
* A resulting Artifact type
* Build, deployment, or validation execution
Separate requirements, architecture specifications, composition definitions, and [[dido:99_annexes:annex-b-terms-and-definitions:w:workflow|Workflow]] definitions govern those subjects and behaviors.
===== Applies To =====
This requirement applies to:
* [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]]
* [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline_composition|Baseline Composition]]
* Selected [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]]
* [[dido:99_annexes:annex-b-terms-and-definitions:i:image_layer|Image Layers]]
* [[dido:99_annexes:annex-b-terms-and-definitions:i:infrastructure_baseline|Infrastructure Baselines]]
* Optional application source
===== Verification =====
Verification confirms that:
- One or more [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baselines]] are selected for testing
- [[dido:99_annexes:annex-b-terms-and-definitions:c:crucible|Crucible]] performs [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline_composition|Baseline Composition]] using the selected Baselines
- The resulting composition includes the selected Baselines
- The resulting composition can be identified
- Crucible completes the composition when application source is not provided
- When application source is provided, Crucible includes the application source in the resulting composition
===== Referenced By =====
The following pages reference this requirement:
{{backlinks>.#dido:02-crusible}}
===== Implementation Status =====
Implemented and Verified
===== Requirement Status =====
Review and approve FR-BAS-002 as a leaf requirement.
----
===== Issues =====
Determine whether Application Source requires a controlled definition in the shared Terms and Definitions corpus.
Determine whether separate requirements define composition ordering, conflict resolution, and dependency resolution.
Determine whether separate requirements identify the required output and metadata of a Baseline Composition operation.
----
===== Notes for Editors =====
This requirement page retains the stable requirement identifier ''FR-BAS-002''.
This page is a leaf requirement page and omits a trailing '':start'' from its namespace.
The Statement uses the following controlling Terms and Definitions entries:
* [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline|Baseline]]
* [[dido:99_annexes:annex-b-terms-and-definitions:b:baseline_composition|Baseline Composition]]
Application source remains optional. Do not interpret this requirement as requiring application source in every composition.
A composition containing only Image Layer Baselines, Infrastructure Baselines, or both remains valid when application source does not apply.
FR-BAS-001 governs consumption of Baseline Repositories from a Workspace.
FR-BAS-003 governs processing of predeployment and postdeployment steps.
FR-BAS-004 governs noninteractive Workspace execution.
Do not add particular Baseline types, repositories, revisions, composition ordering, conflict-resolution behavior, dependency-resolution behavior, output formats, or execution obligations unless the controlling requirement changes through an approved requirements process.
To reference this requirement Statement from another wiki page, insert:
{{section>dido:02-crusible:99-annexes:annex-c-requirements:03-functional-requirements:03-09-baseline-composition-and-workspace:fr-bas-002#Statement&noheader&nofooter&noeditbtn}}
----
© 2026 Dido Solutions, Inc. and Jackrabbit Consulting, Inc.