Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-001:or-001a [2026/07/20 13:47] – created nick_dido | dido:02-crusible:99-annexes:annex-c-requirements:02-operational-requirements:or-001:or-001a [2026/07/30 05:30] (current) – [Delivery Phase] nick_dido | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ===== Statement ===== | ===== Statement ===== | ||
| - | [[dido: | + | [[dido: |
| ===== Derived From ===== | ===== Derived From ===== | ||
| Line 23: | Line 23: | ||
| >> // | >> // | ||
| - | OR-001a preserves the portion of the Original Requirement | + | OR-001a preserves the intent |
| The separate requirements derived from OR-001 address: | The separate requirements derived from OR-001 address: | ||
| Line 32: | Line 32: | ||
| * [[dido: | * [[dido: | ||
| * [[dido: | * [[dido: | ||
| - | |||
| - | ===== Assessment ===== | ||
| - | |||
| - | The Original Requirement uses **operation** without identifying the actions performed by a Developer. | ||
| - | |||
| - | The term **operation** can refer to: | ||
| - | |||
| - | * Initiating a Crucible workflow | ||
| - | * Providing or selecting Controlled Inputs | ||
| - | * Initiating a Machine Image build | ||
| - | * Monitoring a build | ||
| - | * Reviewing build results | ||
| - | * Reviewing captured dependencies | ||
| - | * Initiating an Infrastructure Deployment | ||
| - | * Monitoring an Infrastructure Deployment | ||
| - | * Reviewing generated Evidence | ||
| - | * Investigating a failed operation | ||
| - | |||
| - | The Original Requirement does not identify: | ||
| - | |||
| - | * The Crucible operations performed by a Developer | ||
| - | * The operational scenarios in which the Developer participates | ||
| - | * Whether the Developer initiates, executes, configures, reviews, monitors, or observes an operation | ||
| - | * The interfaces used by the Developer | ||
| - | * The inputs provided by the Developer | ||
| - | * The outputs received or reviewed by the Developer | ||
| - | * The conditions applicable to the Developer operation | ||
| - | * The acceptance condition demonstrating operation by a Developer | ||
| - | |||
| - | OR-001a: | ||
| - | |||
| - | * Identifies [[dido: | ||
| - | * Replaces **support** with the observable action **enable** | ||
| - | * Identifies a Developer as the applicable user category | ||
| - | * Identifies the applicable operational scenario as the source of the Developer operations | ||
| - | * Avoids introducing an Operational Role, role-assignment mechanism, or role-based authorization model | ||
| - | * Separates Developer operation from operation by the other user categories listed in OR-001 | ||
| - | |||
| - | The Statement uses **each Crucible operation identified for the Developer** to apply one consistent enablement obligation across the operations assigned to the Developer by the applicable operational scenario. | ||
| - | |||
| - | When an operational scenario identifies independently testable Developer activities with different actors, objects, conditions, or completion criteria, those activities should be expressed through existing atomic requirements or additional requirements rather than embedded within OR-001a. | ||
| - | |||
| - | ===== Concept of Operations Interpretation ===== | ||
| - | |||
| - | The Concept of Operations identifies the following high-level Crucible operations: | ||
| - | |||
| - | * **Build** — Crucible builds Machine Images while applying the applicable image-hardening configuration | ||
| - | * **Capture** — Crucible captures build dependencies and compliance findings into managed storage | ||
| - | * **Deploy** — Crucible provisions infrastructure and executes the applicable pre-deployment and post-deployment steps | ||
| - | |||
| - | The cited Concept of Operations passage does not, by itself, state which of these operations a Developer performs. | ||
| - | |||
| - | A Developer can participate in a Crucible operation by: | ||
| - | |||
| - | * Initiating the operation | ||
| - | * Providing inputs to the operation | ||
| - | * Selecting applicable configuration | ||
| - | * Monitoring execution | ||
| - | * Reviewing results | ||
| - | * Responding to failures | ||
| - | |||
| - | The applicable operational scenario should identify the Developer participation relevant to each operation. | ||
| - | |||
| - | OR-001a does not independently allocate Build, Capture, or Deploy to the Developer. The allocation must remain traceable to the Concept of Operations, an architecture section, or an existing requirement. | ||
| - | |||
| - | ===== Requirement Reuse Assessment ===== | ||
| - | |||
| - | Before creating a lower-level requirement to realize OR-001a, the requirements corpus should be checked for an existing requirement that already defines the applicable Developer behavior. | ||
| - | |||
| - | An existing requirement can be reused when: | ||
| - | |||
| - | * The required Crucible behavior is the same | ||
| - | * The subject and object of the behavior are compatible | ||
| - | * The requirement applies to Developer participation | ||
| - | * The operational conditions cover the applicable scenario | ||
| - | * The verification outcome demonstrates Developer operation | ||
| - | * Reuse does not broaden or change the meaning of the existing requirement | ||
| - | |||
| - | The following requirements should be examined for reuse: | ||
| - | |||
| - | * Image-management requirements governing Machine Image Build | ||
| - | * Configuration-management requirements governing Developer-provided configuration | ||
| - | * Dependency-capture requirements governing Capture | ||
| - | * Deployment-orchestration requirements governing Deploy | ||
| - | * DevSecOps integration requirements governing workflow initiation and monitoring | ||
| - | * Interface requirements governing graphical, command-line, | ||
| - | * Security requirements governing authentication and authorization | ||
| - | * Logging requirements governing operational event records | ||
| - | * Evidence, Provenance, Auditability, | ||
| - | |||
| - | A new requirement should be created only when no existing requirement defines the required Developer behavior with the correct actor, object, conditions, and acceptance criteria. | ||
| - | |||
| - | OR-001a establishes that Developers can perform their identified Crucible operations. It does not duplicate the detailed requirements governing Build, Capture, Deploy, security, logging, or interfaces. | ||
| ===== Rationale ===== | ===== Rationale ===== | ||
| - | Developers | + | Developers |
| - | Developer | + | This requirement ensures that Crucible performs each operation allocated to the Developer |
| - | * Preparing source content | + | Separating Developer |
| - | * Preparing configuration content | + | |
| - | * Providing Controlled Inputs | + | |
| - | * Selecting an applicable build or deployment description | + | |
| - | * Initiating a permitted workflow | + | |
| - | * Monitoring workflow execution | + | |
| - | * Reviewing generated Artifacts | + | |
| - | * Reviewing workflow results | + | |
| - | * Reviewing generated Evidence | + | |
| - | * Investigating errors and failed | + | |
| - | The applicable operational scenario determines which activities apply to the Developer. | + | Without this requirement, |
| - | + | ||
| - | Enabling Developer | + | |
| - | + | ||
| - | * Development workflow execution | + | |
| - | * Early validation of configuration changes | + | |
| - | * Repeatable Machine Image Build | + | |
| - | * Review of captured dependencies | + | |
| - | * Evaluation of deployment results | + | |
| - | * Identification of defects before promotion | + | |
| - | * Integration with DevSecOps workflows | + | |
| - | + | ||
| - | This requirement does not require Developers | + | |
| - | + | ||
| - | This requirement does not establish | + | |
| - | + | ||
| - | This requirement does not define the detailed Build, Capture, or Deploy behavior. Existing functional requirements should define and realize those operations. | + | |
| ===== Applies To ===== | ===== Applies To ===== | ||
| Line 167: | Line 49: | ||
| * [[dido: | * [[dido: | ||
| * Developers | * Developers | ||
| - | | + | * Developer |
| - | | + | * Crucible |
| - | * Build operations | + | * [[dido: |
| - | * Capture operations | + | * Operation status |
| - | * Deploy | + | * Operation results |
| - | * Controlled Inputs | + | * Operation failures |
| - | * Machine Images | + | * Operation exceptions |
| - | * Infrastructure Baselines | + | * [[dido: |
| - | * Infrastructure Deployments | + | |
| - | * User interfaces | + | |
| - | * Command-line interfaces | + | |
| - | * Application programming interfaces | + | |
| - | * Automation interfaces | + | |
| - | * Workflow results | + | |
| - | * Failure | + | |
| * [[dido: | * [[dido: | ||
| * [[dido: | * [[dido: | ||
| * [[dido: | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| + | * [[dido: | ||
| ===== Verification ===== | ===== Verification ===== | ||
| Line 190: | Line 68: | ||
| Verification confirms that: | Verification confirms that: | ||
| - | - The applicable operational scenario | + | - The Developer Role is identified |
| - | - The Developer operations identified by the operational scenario are enumerated | + | - Each Crucible operation allocated to the Developer |
| - | - The interface applicable to each Developer | + | - Crucible performs |
| - | - The inputs required by each Developer | + | - The performed |
| - | - The outputs produced or presented by each Developer operation are identified | + | - Crucible produces |
| - | - A Developer can perform each identified Developer operation | + | - The verification record preserves |
| - | - Each operation produces an identified result | + | |
| - | - Failed operations produce an observable result | + | |
| - | - Existing requirements used to realize each Developer operation are identified | + | |
| - | - The verification record preserves | + | |
| - | + | ||
| - | Verification includes: | + | |
| - | + | ||
| - | * Operational scenario inspection | + | |
| - | * Developer | + | |
| - | | + | |
| - | * Interface inspection | + | |
| - | * Controlled Input inspection | + | |
| - | * Developer workflow testing | + | |
| - | * Build-operation testing, when applicable | + | |
| - | * Capture-operation testing, when applicable | + | |
| - | * Deploy-operation testing, when applicable | + | |
| - | * Workflow monitoring testing | + | |
| - | * Result-review testing | + | |
| - | * Failure and exception testing | + | |
| - | * Evidence inspection | + | |
| - | * Provenance inspection | + | |
| - | * Traceability inspection | + | |
| - | + | ||
| - | The verification record identifies: | + | |
| - | + | ||
| - | - The applicable operational scenario | + | |
| - | - The Developer | + | |
| - | - Each identified Developer | + | |
| - | - The interface used for each operation | + | |
| - | - The inputs provided for each operation | + | |
| - | - The existing requirement or requirements realizing each operation | + | |
| - | - The result | + | |
| - | - Each generated Artifact | + | |
| - | - Each generated | + | |
| - | - Each identified coverage gap | + | |
| - | - The observed result | + | |
| - | - The generated | + | |
| - | + | ||
| - | ===== Requirements Realized By ===== | + | |
| - | + | ||
| - | This requirement is realized by applicable existing requirements governing: | + | |
| - | + | ||
| - | * Configuration management | + | |
| - | * Machine Image management | + | |
| - | * Deployment orchestration | + | |
| - | * DevSecOps integration | + | |
| - | * Dependency capture | + | |
| - | * User and automation interfaces | + | |
| - | * Authentication and authorization | + | |
| - | * Logging | + | |
| - | * Evidence, Provenance, Auditability, | + | |
| - | + | ||
| - | Specific realization links should be added only after confirming that each referenced requirement provides Developer access to the applicable operation. | + | |
| - | + | ||
| - | ===== Related Architecture Sections ===== | + | |
| - | + | ||
| - | * [[dido:02-crusible:05-descriptions-composition-and-baselines:start|5. Descriptions, | + | |
| - | | + | |
| - | * [[dido:02-crusible:07-infrastructure-and-deployment: | + | |
| - | * [[dido:02-crusible:08-dependencies-and-air-gap-operations:start|8. Dependencies and Air Gap Operations]] | + | |
| - | * [[dido: | + | |
| ===== Referenced By ===== | ===== Referenced By ===== | ||
| Line 266: | Line 83: | ||
| ===== Delivery Phase ===== | ===== Delivery Phase ===== | ||
| - | Phase 1 and subsequent phases | + | Implemented |
| ===== Implementation Status ===== | ===== Implementation Status ===== | ||
| - | Not Assessed | + | < |
| - | + | ||
| - | Implementation status requires identification of the Crucible | + | |
| ===== Requirement Status ===== | ===== Requirement Status ===== | ||
| - | Draft | + | < |
| - | This requirement | + | ---- |
| + | ===== Issues ===== | ||
| + | |||
| + | The following unresolved issues affect this requirement: | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| ---- | ---- | ||
| Line 287: | Line 109: | ||
| This page is a leaf requirement page and omits a trailing '': | This page is a leaf requirement page and omits a trailing '': | ||
| - | Changes to the Statement should preserve the requirement that Developers can perform the Crucible operations identified for them by applicable operational scenarios. | + | The parent OR-001 page is a non-leaf page and retains |
| - | + | ||
| - | Do not introduce an Operational Role, role-assignment mechanism, authorization model, or access-control model unless | + | |
| - | Before creating an additional Developer-operation requirement: | + | Changes to the Statement should preserve: |
| - | * Review | + | * [[dido: |
| - | * Identify the specific | + | * Developer |
| - | * Search | + | * Allocation of each Crucible operation to the Developer Role |
| - | * Reuse an existing requirement when its actor, behavior, object, conditions, and verification outcome provide | + | * Performance of each allocated operation by Crucible |
| - | * Create a new requirement only when the reuse review identifies a coverage gap | + | |
| - | The operational scenario | + | The unresolved meaning of Developer Role should |
| - | * The Developer activity | + | The source of each operation |
| - | * The applicable Crucible | + | |
| - | * The interface used | + | |
| - | * The inputs provided | + | |
| - | * The outputs received or reviewed | + | |
| - | * The applicable starting condition | + | |
| - | * The applicable completion condition | + | |
| - | * The applicable failure condition | + | |
| - | * The existing requirements governing | + | |
| - | * The required Evidence | + | |
| - | Material changes should receive review and should update the related | + | Material changes should receive review and should update the verification criteria, |
| To reference this requirement Statement from another wiki page, insert: | To reference this requirement Statement from another wiki page, insert: | ||