Skip to content

Commit 0330d1d

Browse files
Add normalized BLOCK catalogue with controlled environment vocabulary and update all artifacts (#79)
* Initial plan * Update BLOCK catalogue with normalized environment vocabulary Co-authored-by: AmedeoPelliccia <164860269+AmedeoPelliccia@users.noreply.github.com> * Update documentation with normalized BLOCK catalogue Co-authored-by: AmedeoPelliccia <164860269+AmedeoPelliccia@users.noreply.github.com> * Improve BLOCK pattern documentation for clarity Co-authored-by: AmedeoPelliccia <164860269+AmedeoPelliccia@users.noreply.github.com> * Update all nomenclature and workflow artifacts with B01 POLICIES Co-authored-by: AmedeoPelliccia <164860269+AmedeoPelliccia@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: AmedeoPelliccia <164860269+AmedeoPelliccia@users.noreply.github.com>
1 parent e137baa commit 0330d1d

File tree

7 files changed

+215
-99
lines changed

7 files changed

+215
-99
lines changed

README.md

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -91,18 +91,36 @@ This repository contains the official directory structure generators for AMPEL36
9191

9292
The **BLOCK** field uses domain partition identifiers (B00-B90) aligned with the OPTINS Framework v1.1:
9393

94-
| BLOCK | Domain-Subsystem | Environment |
95-
|------:|:--------------------------------------------------------|:-------------------------|
96-
| B00 | GENERAL (universal, implicit) | all |
97-
| B10 | OPERATIONAL SYSTEMS | onboard/offboard/simtest |
98-
| B20 | CYBERSECURITY | digital + onboard |
99-
| B30 | DATA, COMMS AND REGISTRY | digital + onboard |
100-
| B40 | PHYSICS (pressure/thermal/cryo) | onboard + simtest |
101-
| B50 | PHYSICAL (aerostructures + HW) | onboard/offboard |
102-
| B60 | DYNAMICS (thrust/attitude/inerting) | onboard + simtest |
103-
| B70 | RECIPROCITY & ALTERNATIVE ENGINES | onboard + simtest |
104-
| B80 | RENEWABLE ENERGY & CIRCULARITY | onboard + offboard |
105-
| B90 | CONNECTIONS & MAPPING | digital + onboard |
94+
| BLOCK | Domain–Subsystem | Environment |
95+
| ------- | ---------------------------------------- | -------------------------------- |
96+
| **B00** | GENERAL (universal, implicit) | **all** |
97+
| **B01** | POLICIES (governance, standards, rules) | **all** |
98+
| **B10** | INFRASTRUCTURES AND SPACEPORTS | **onboard + offboard + simtest** |
99+
| **B20** | ROBOTICS | **onboard + offboard** |
100+
| **B30** | CYBERSECURITY, DATA, COMMS | **digital + onboard** |
101+
| **B40** | PHYSICS (pressure/thermal/cryo) | **onboard + simtest** |
102+
| **B50** | PHYSICAL (aerostructures + HW, material) | **onboard + offboard** |
103+
| **B60** | DYNAMICS (thrust/attitude/inerting) | **onboard + simtest** |
104+
| **B70** | LAUNCHERS AND ENGINES | **onboard + simtest** |
105+
| **B80** | RENEWABLE ENERGY & CIRCULARITY | **onboard + offboard** |
106+
| **B90** | OPTICS, SENSORING AND OBSERVATION | **onboard + offboard + simtest** |
107+
108+
**Rationale for B90 environment:** sensors/optics typically have **onboard** operation, **simtest** validation (SIL/HIL, lab scenes), and **offboard** calibration/test assets (benches, metrology, ground stations).
109+
110+
#### Controlled Vocabulary
111+
112+
To keep CI validation deterministic, Environment is constrained to these tokens:
113+
114+
* `onboard` — Onboard systems and components
115+
* `offboard` — Ground-based/external infrastructure
116+
* `simtest` — Simulation and testing environments
117+
* `digital` — Digital/software-only domains
118+
* `all` — Universal applicability (exclusive, cannot combine with others)
119+
120+
**Combination Rules:**
121+
* `all` **cannot** be combined with any other environment token
122+
* Combinations use ` + ` (space-plus-space) as separator
123+
* Combinations should follow canonical order: `digital + onboard + offboard + simtest`
106124

107125
**Note:** Not all BLOCK values are valid for all ATA_ROOT values. See `config/nomenclature/ATA_PARTITION_MATRIX.yaml` for the complete ATA_ROOT to BLOCK mapping.
108126

config/nomenclature/ATA_PARTITION_MATRIX.yaml

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ status: "Normative"
2222
# ============================================================================
2323
#
2424
# B00 is universal (implicit for all ATA roots)
25+
# B01 is policies/governance (universal)
2526
# B10-B90 are domain-specific partitions
2627

2728
domain_partitions:
@@ -31,39 +32,45 @@ domain_partitions:
3132
environment: "all"
3233
implicit: true
3334

35+
B01:
36+
name: "POLICIES"
37+
description: "Governance, standards, rules - applies to all ATA roots"
38+
environment: "all"
39+
implicit: true
40+
3441
B10:
35-
name: "OPERATIONAL SYSTEMS"
36-
description: "Operational systems and procedures"
37-
environment: "onboard/offboard/simtest"
42+
name: "INFRASTRUCTURES AND SPACEPORTS"
43+
description: "Infrastructure systems and spaceport operations"
44+
environment: "onboard + offboard + simtest"
3845

3946
B20:
40-
name: "CYBERSECURITY"
41-
description: "Cybersecurity and information assurance"
42-
environment: "digital + onboard"
47+
name: "ROBOTICS"
48+
description: "Robotics and automated systems"
49+
environment: "onboard + offboard"
4350

4451
B30:
45-
name: "DATA, COMMS AND REGISTRY"
46-
description: "Data management, communications, and registry systems"
52+
name: "CYBERSECURITY, DATA, COMMS"
53+
description: "Cybersecurity, data management, and communications"
4754
environment: "digital + onboard"
4855

4956
B40:
50-
name: "PHYSICS (pressure/thermal/cryo/...)"
57+
name: "PHYSICS (pressure/thermal/cryo)"
5158
description: "Physical phenomena: pressure, thermal, cryogenic systems"
5259
environment: "onboard + simtest"
5360

5461
B50:
55-
name: "PHYSICAL (aerostructures + info HW)"
56-
description: "Physical structures and hardware"
57-
environment: "onboard/offboard"
62+
name: "PHYSICAL (aerostructures + HW, material)"
63+
description: "Physical structures, hardware, and materials"
64+
environment: "onboard + offboard"
5865

5966
B60:
60-
name: "DYNAMICS (thrust/drag-lift/balancing/attitude/inerting)"
61-
description: "Dynamic systems: propulsion, aerodynamics, attitude control"
67+
name: "DYNAMICS (thrust/attitude/inerting)"
68+
description: "Dynamic systems: propulsion, attitude control, inerting"
6269
environment: "onboard + simtest"
6370

6471
B70:
65-
name: "RECIPROCITY & ALTERNATIVE ENGINES"
66-
description: "Alternative propulsion and reciprocating systems"
72+
name: "LAUNCHERS AND ENGINES"
73+
description: "Launcher systems and propulsion engines"
6774
environment: "onboard + simtest"
6875

6976
B80:
@@ -72,9 +79,9 @@ domain_partitions:
7279
environment: "onboard + offboard"
7380

7481
B90:
75-
name: "CONNECTIONS & MAPPING"
76-
description: "Connectivity, mapping, and integration systems"
77-
environment: "digital + onboard"
82+
name: "OPTICS, SENSORING AND OBSERVATION"
83+
description: "Optical systems, sensors, and observation equipment"
84+
environment: "onboard + offboard + simtest"
7885

7986
# ============================================================================
8087
# SECTION 1: SOLUTION PACK SCHEMA

config/nomenclature/v6_0.yaml

Lines changed: 81 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -83,23 +83,89 @@ allowlists:
8383

8484
# BLOCK allowlist (domain partition system - OPTINS Framework aligned)
8585
# B00 is universal/implicit (always applies)
86+
# B01 is policies/governance (universal)
8687
# B10-B90 are domain-specific partitions (10-step increments)
8788
# GEN is a legacy/transitional BLOCK for general-purpose files during migration
8889
# See ATA_PARTITION_MATRIX.yaml for complete ATA_ROOT to BLOCK mapping
8990
# Extension requires CM change control
9091
blocks:
9192
- B00 # GENERAL (universal baseline, implicit)
92-
- B10 # OPERATIONAL SYSTEMS (onboard/offboard/simtest)
93-
- B20 # CYBERSECURITY (digital + onboard)
94-
- B30 # DATA, COMMS AND REGISTRY (digital + onboard)
95-
- B40 # PHYSICS (pressure/thermal/crio/...) (onboard + simtest)
96-
- B50 # PHYSICAL (aerostructures + info HW) (onboard/offboard)
97-
- B60 # DYNAMICS (thrust/drag-lift/balancing/attitude/inerting) (onboard + simtest)
98-
- B70 # RECIPROCITY & ALTERNATIVE ENGINES (onboard + simtest)
99-
- B80 # RENEWABLE ENERGY & CIRCULARITY (onboard + offboard)
100-
- B90 # CONNECTIONS & MAPPING (digital + onboard)
93+
- B01 # POLICIES (governance, standards, rules)
94+
- B10 # INFRASTRUCTURES AND SPACEPORTS
95+
- B20 # ROBOTICS
96+
- B30 # CYBERSECURITY, DATA, COMMS
97+
- B40 # PHYSICS (pressure/thermal/cryo)
98+
- B50 # PHYSICAL (aerostructures + HW, material)
99+
- B60 # DYNAMICS (thrust/attitude/inerting)
100+
- B70 # LAUNCHERS AND ENGINES
101+
- B80 # RENEWABLE ENERGY & CIRCULARITY
102+
- B90 # OPTICS, SENSORING AND OBSERVATION
101103
- GEN # Legacy/transitional BLOCK for v5.0 to v6.0 migration
102104

105+
# BLOCK catalog with environment mappings
106+
# Defines the normalized BLOCK catalogue with controlled environment vocabulary
107+
# Environment tokens: onboard, offboard, simtest, digital, all
108+
# Combination rules:
109+
# - "all" cannot be combined with any other token
110+
# - Combinations use space-plus-space separator: " + "
111+
# - Canonical order: digital + onboard + offboard + simtest
112+
block_catalog:
113+
- block: B00
114+
domain: "GENERAL (universal, implicit)"
115+
environment: ["all"]
116+
- block: B01
117+
domain: "POLICIES (governance, standards, rules)"
118+
environment: ["all"]
119+
- block: B10
120+
domain: "INFRASTRUCTURES AND SPACEPORTS"
121+
environment: ["onboard", "offboard", "simtest"]
122+
- block: B20
123+
domain: "ROBOTICS"
124+
environment: ["onboard", "offboard"]
125+
- block: B30
126+
domain: "CYBERSECURITY, DATA, COMMS"
127+
environment: ["digital", "onboard"]
128+
- block: B40
129+
domain: "PHYSICS (pressure/thermal/cryo)"
130+
environment: ["onboard", "simtest"]
131+
- block: B50
132+
domain: "PHYSICAL (aerostructures + HW, material)"
133+
environment: ["onboard", "offboard"]
134+
- block: B60
135+
domain: "DYNAMICS (thrust/attitude/inerting)"
136+
environment: ["onboard", "simtest"]
137+
- block: B70
138+
domain: "LAUNCHERS AND ENGINES"
139+
environment: ["onboard", "simtest"]
140+
- block: B80
141+
domain: "RENEWABLE ENERGY & CIRCULARITY"
142+
environment: ["onboard", "offboard"]
143+
- block: B90
144+
domain: "OPTICS, SENSORING AND OBSERVATION"
145+
environment: ["onboard", "offboard", "simtest"]
146+
147+
# Environment controlled vocabulary
148+
# Used for deterministic CI validation of BLOCK environment mappings
149+
environment_vocabulary:
150+
tokens:
151+
- onboard # Onboard systems and components
152+
- offboard # Ground-based/external infrastructure
153+
- simtest # Simulation and testing environments
154+
- digital # Digital/software-only domains
155+
- all # Universal applicability
156+
157+
combination_rules:
158+
separator: " + "
159+
canonical_order: ["digital", "onboard", "offboard", "simtest"]
160+
exclusivity:
161+
all: true # "all" cannot be combined with any other token
162+
163+
validation:
164+
enforce_canonical_order: true
165+
enforce_separator: true
166+
enforce_token_vocabulary: true
167+
enforce_all_exclusivity: true
168+
103169
# AoR allowlist (Area of Responsibility / Portal Entry Points)
104170
# Must match portal entry points exactly (no STK_ prefix)
105171
# Extension requires CM change control
@@ -204,8 +270,12 @@ patterns:
204270
# First capture group is the brand root for extraction
205271
version: "^(PLUS|PLUSULTRA)([0-9]{2})?$"
206272
model: "^(BB|HW|SW|PR)$"
207-
# BLOCK is B## format (00-90 in increments of 10)
208-
block: "^B[0-9]0$"
273+
# BLOCK format validation pattern
274+
# Pattern: ^(B[0-9]{2}|GEN)$ - Allows B00-B99 plus GEN for format validation
275+
# Actual allowed values: B00, B01, B10, B20, ..., B90, GEN (defined in allowlist above)
276+
# The pattern is intentionally permissive; the allowlist provides the actual constraint
277+
# This design allows future BLOCK additions via allowlist updates without pattern changes
278+
block: "^(B[0-9]{2}|GEN)$"
209279
phase: "^(LC(0[1-9]|1[0-4])|SB[0-9]{2})$"
210280
knot_task: "^K(0[1-9]|1[0-4])(-T[0-9]{3})?$"
211281
subject: "^[a-z0-9]+(-[a-z0-9]+)*$"

docs/standards/BLOCK_MIGRATION_GUIDE.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
## 1. Overview
1111

12-
This document provides guidance for migrating from legacy BLOCK abbreviations (OPS, STR, AI, etc.) to the new domain partition system (B00-B90) aligned with the OPTINS Framework v1.1.
12+
This document provides guidance for migrating from legacy BLOCK abbreviations (OPS, STR, AI, etc.) to the new domain partition system (B00, B01, B10-B90) aligned with the OPTINS Framework v1.1.
1313

1414
### Why This Change?
1515

@@ -21,7 +21,7 @@ This document provides guidance for migrating from legacy BLOCK abbreviations (O
2121
### Key Changes
2222

2323
- **Old**: BLOCK used abbreviations (OPS, STR, PROP, AI, DATA, etc.)
24-
- **New**: BLOCK uses B## format (B00, B10, B20, ..., B90)
24+
- **New**: BLOCK uses B## format (B00, B01, B10-B90)
2525
- **Validation**: BLOCK values must be valid for the given ATA_ROOT per ATA_PARTITION_MATRIX
2626

2727
---
@@ -33,17 +33,18 @@ The new BLOCK field represents domain partitions defined by the OPTINS Framework
3333
| BLOCK | Domain-Subsystem | Environment Typical | Legacy Mapping Hint |
3434
|------:|:--------------------------------------------------------|:-----------------------------|:--------------------------|
3535
| B00 | GENERAL (universal, implicit) | all | GEN (partially) |
36-
| B10 | OPERATIONAL SYSTEMS | onboard/offboard/simtest | OPS, CERT, SAF, SYS, TEST, MRO |
37-
| B20 | CYBERSECURITY | digital + onboard | AI (partially), SW (partially) |
38-
| B30 | DATA, COMMS AND REGISTRY | digital + onboard | DATA |
39-
| B40 | PHYSICS (pressure/thermal/cryo/…) | onboard + simtest | (new semantic) |
40-
| B50 | PHYSICAL (aerostructures + info HW) | onboard/offboard | STR, HW, STOR |
41-
| B60 | DYNAMICS (thrust/drag-lift/balancing/attitude/inerting) | onboard + simtest | PROP |
42-
| B70 | RECIPROCITY & ALTERNATIVE ENGINES | onboard + simtest | (new semantic) |
36+
| B01 | POLICIES (governance, standards, rules) | all | (new semantic) |
37+
| B10 | INFRASTRUCTURES AND SPACEPORTS | onboard + offboard + simtest | OPS, CERT, SAF, SYS, TEST, MRO |
38+
| B20 | ROBOTICS | onboard + offboard | AI (partially), SW (partially) |
39+
| B30 | CYBERSECURITY, DATA, COMMS | digital + onboard | DATA |
40+
| B40 | PHYSICS (pressure/thermal/cryo) | onboard + simtest | (new semantic) |
41+
| B50 | PHYSICAL (aerostructures + HW, material) | onboard + offboard | STR, HW, STOR |
42+
| B60 | DYNAMICS (thrust/attitude/inerting) | onboard + simtest | PROP |
43+
| B70 | LAUNCHERS AND ENGINES | onboard + simtest | (new semantic) |
4344
| B80 | RENEWABLE ENERGY & CIRCULARITY | onboard + offboard | CIRC, ENRG |
44-
| B90 | CONNECTIONS & MAPPING | digital + onboard | (new semantic) |
45+
| B90 | OPTICS, SENSORING AND OBSERVATION | onboard + offboard + simtest | (new semantic) |
4546

46-
**Note**: B00 is universal and implicit - always valid for all ATA_ROOT values.
47+
**Note**: B00 and B01 are universal and implicit - always valid for all ATA_ROOT values.
4748

4849
---
4950

docs/standards/NOMENCLATURE_v6_0_R1_0.md

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -176,24 +176,39 @@ All files must strictly adhere to the **canonical format**:
176176

177177
**Definition:** Domain partition identifier using the OPTINS Framework domain segmentation system.
178178

179-
**Format:** `B##` where `##` is a two-digit number (00-90 in increments of 10)
179+
**Format:** `B##` where `##` is a two-digit number (B00, B01, B10-B90 in increments of 10)
180180

181181
**Domain Partition System (B00-B90):**
182182

183-
| BLOCK | Domain-Subsystem | Environment Typical |
184-
|------:|:--------------------------------------------------------|:-----------------------------|
185-
| B00 | GENERAL | all (universal, implicit) |
186-
| B10 | OPERATIONAL SYSTEMS | onboard/offboard/simtest |
187-
| B20 | CYBERSECURITY | digital + onboard |
188-
| B30 | DATA, COMMS AND REGISTRY | digital + onboard |
189-
| B40 | PHYSICS (pressure/thermal/cryo/…) | onboard + simtest |
190-
| B50 | PHYSICAL (aerostructures + info HW) | onboard/offboard |
191-
| B60 | DYNAMICS (thrust/drag-lift/balancing/attitude/inerting) | onboard + simtest |
192-
| B70 | RECIPROCITY & ALTERNATIVE ENGINES | onboard + simtest |
193-
| B80 | RENEWABLE ENERGY & CIRCULARITY | onboard + offboard |
194-
| B90 | CONNECTIONS & MAPPING | digital + onboard |
195-
196-
**Pattern:** `^B[0-9]0$` (matches B00, B10, B20, ..., B90)
183+
| BLOCK | Domain–Subsystem | Environment |
184+
| ------- | ---------------------------------------- | -------------------------------- |
185+
| **B00** | GENERAL (universal, implicit) | **all** |
186+
| **B01** | POLICIES (governance, standards, rules) | **all** |
187+
| **B10** | INFRASTRUCTURES AND SPACEPORTS | **onboard + offboard + simtest** |
188+
| **B20** | ROBOTICS | **onboard + offboard** |
189+
| **B30** | CYBERSECURITY, DATA, COMMS | **digital + onboard** |
190+
| **B40** | PHYSICS (pressure/thermal/cryo) | **onboard + simtest** |
191+
| **B50** | PHYSICAL (aerostructures + HW, material) | **onboard + offboard** |
192+
| **B60** | DYNAMICS (thrust/attitude/inerting) | **onboard + simtest** |
193+
| **B70** | LAUNCHERS AND ENGINES | **onboard + simtest** |
194+
| **B80** | RENEWABLE ENERGY & CIRCULARITY | **onboard + offboard** |
195+
| **B90** | OPTICS, SENSORING AND OBSERVATION | **onboard + offboard + simtest** |
196+
197+
**Rationale for B90 environment:** sensors/optics typically have **onboard** operation, **simtest** validation (SIL/HIL, lab scenes), and **offboard** calibration/test assets (benches, metrology, ground stations).
198+
199+
**Environment Controlled Vocabulary:**
200+
* `onboard` — Onboard systems and components
201+
* `offboard` — Ground-based/external infrastructure
202+
* `simtest` — Simulation and testing environments
203+
* `digital` — Digital/software-only domains
204+
* `all` — Universal applicability (exclusive, cannot combine with others)
205+
206+
**Combination Rules:**
207+
* `all` **cannot** be combined with any other environment token
208+
* Combinations use ` + ` (space-plus-space) as separator
209+
* Combinations should follow canonical order: `digital + onboard + offboard + simtest`
210+
211+
**Pattern:** `^(B[0-9]{2}|GEN)$` (matches B00-B99; allowlist constrains to approved blocks)
197212

198213
**B00 is universal:** Always implicit and applicable to all ATA_ROOT values.
199214

0 commit comments

Comments
 (0)