diff --git a/README.md b/README.md
index 431f93b65..e0b3c9a7c 100644
--- a/README.md
+++ b/README.md
@@ -174,6 +174,7 @@ SIG-specific GitHub discussions.
| Ruby: SDK ๐ | Tuesday at 10:00 PT | [Google Doc](https://docs.google.com/document/d/1EaIbfDE1elWTWt3bhilggki_OCRJZoFCSYZJXgc9KsM) | [#otel-ruby](https://cloud-native.slack.com/archives/C01NWKKMKMY) and [GitHub Discussions](https://github.com/open-telemetry/opentelemetry-ruby/discussions) | [calendar-ruby](https://groups.google.com/a/opentelemetry.io/g/calendar-ruby) | [Ted Young](https://github.com/tedsuo) |
| Rust: SDK ๐ | Alternating between Tuesday at 09:00 AM PT and Wednesday at 8:00 AM PT | [Google Doc](https://docs.google.com/document/d/12upOzNk8c3SFTjsL6IRohCWMgzLKoknSCOOdMakbWo4) | [#otel-rust](https://cloud-native.slack.com/archives/C03GDP0H023) | [calendar-rust](https://groups.google.com/a/opentelemetry.io/g/calendar-rust) | [Ted Young](https://github.com/tedsuo) |
| Swift: SDK ๐ | Thursday at 09:00 PT | [Google Doc](https://docs.google.com/document/d/1LugL8r4bAkbTxZ1Gq_6j_8SDv1LuZaNeUdR-QLN4d48) | [#otel-swift](https://cloud-native.slack.com/archives/C01NCHR19SB) | [calendar-swift](https://groups.google.com/a/opentelemetry.io/g/calendar-swift) | [Alolita Sharma](https://github.com/alolita) |
+| Zig: SDK | | | | | [Alolita Sharma](https://github.com/alolita) |
| Network ๐ | Tuesday at 09:00 PT | [Google Doc](https://docs.google.com/document/d/13GK915hdDQ9sUYzUIWi4pOfJK68EE935ugutUgL3yOw) | [#otel-network](https://cloud-native.slack.com/archives/C02AB15583A) | [calendar-network](https://groups.google.com/a/opentelemetry.io/g/calendar-network) | [Ted Young](https://github.com/tedsuo) |
| eBPF Instrumentation ๐ | Wednesday at 08:00 PT | [Google Doc](https://docs.google.com/document/d/1ZkmUT2EHKfgtLqrgx3WI8aBy2QNyZeTwSKXxe3DI6Pw) | [#otel-ebpf-instrumentation](https://cloud-native.slack.com/archives/C08P9L4FPKJ) | [calendar-ebpf-instrumentation](https://groups.google.com/a/opentelemetry.io/g/calendar-ebpf-instrumentation) | [Severin Neumann](https://github.com/svrnm) |
| Kubernetes Operator ๐ | Thursday at 09:00 PT | [Google Doc](https://docs.google.com/document/d/1Unbs2qp_j5kp8FfL_lRH-ld7i5EOQpsq0I4djkOOSL4) | [#otel-operator](https://cloud-native.slack.com/archives/C033BJ8BASU) | [calendar-k8s-operator](https://groups.google.com/a/opentelemetry.io/g/calendar-k8s-operator) | [Juraci Paixรฃo Krรถhling](https://github.com/jpkrohling) |
diff --git a/scripts/schema/workstreams.schema.yml b/scripts/schema/workstreams.schema.yml
index 5d83b67b1..760f54a49 100644
--- a/scripts/schema/workstreams.schema.yml
+++ b/scripts/schema/workstreams.schema.yml
@@ -19,12 +19,19 @@ items:
id:
type: string
minLength: 1
+ # Any kind may be associated with a project proposal document
+ # under /projects/*.md.
kind:
type: string
enum:
# Permanent operational group with recurring meetings,
# a GC liaison, and a TC sponsor.
- sig
+ # Time-bound effort with defined deliverables and exit criteria.
+ # Concludes when its deliverables are met, distinct from a
+ # permanent SIG. Initiatives are scoped under a parent SIG, which
+ # manages the initiative's lifecycle.
+ - initiative
name:
type: string
minLength: 1
@@ -92,6 +99,11 @@ items:
- leading
# Level required but not yet determined.
- tbd
+ # Person accountable for driving the workstream forward.
+ # Required on: initiative. GitHub username, or 'tbd' if not yet assigned.
+ lead:
+ type: string
+ minLength: 1
# Trusted collaborator with approval rights on the spec repository.
# TC members are a superset and may fill this role.
# GitHub username, or 'tbd' if not yet assigned.
diff --git a/scripts/validate-workstreams.py b/scripts/validate-workstreams.py
index 71381ece2..b8470c1ba 100644
--- a/scripts/validate-workstreams.py
+++ b/scripts/validate-workstreams.py
@@ -33,12 +33,20 @@
KIND_REQUIRED_ROLES = {
"sig": {"gcLiaison", "tcSponsor"},
+ "initiative": {"lead"},
+}
+
+KIND_FORBIDDEN_ROLES = {
+ "initiative": {"gcLiaison", "tcSponsor"},
}
VALID_PARENT_KINDS = {
"sig": {"sig"},
+ "initiative": {"sig"},
}
+KINDS_REQUIRING_PARENT = {"initiative"}
+
MEMBERSHIP_REQUIRED_ROLES = {"gcLiaison", "tcSponsor", "specSponsor"}
@@ -90,6 +98,8 @@ def validate_workstreams_semantics(workstreams: list[dict], people_data: dict) -
parent_id = w.get("parent")
if parent_id is None or parent_id == NONE:
+ if kind in KINDS_REQUIRING_PARENT:
+ errors.append(f"[{wid}] kind '{kind}' requires a parent")
continue
if parent_id == wid:
@@ -132,6 +142,11 @@ def validate_workstreams_semantics(workstreams: list[dict], people_data: dict) -
errors.append(
f"[{wid}] kind '{kind}' requires at least one '{required_role}'"
)
+ for forbidden_role in KIND_FORBIDDEN_ROLES.get(kind, set()) & person_roles:
+ errors.append(
+ f"[{wid}] kind '{kind}' must not specify '{forbidden_role}' "
+ "(inherited from parent SIG)"
+ )
teams = people_data.get("teams", {})
gc_members = {u.lower() for u in teams.get("governance-committee", [])}
diff --git a/workstreams.yml b/workstreams.yml
index 890818cc7..d1d323b57 100644
--- a/workstreams.yml
+++ b/workstreams.yml
@@ -770,6 +770,16 @@
name: '#otel-swift'
id: C01NCHR19SB
- repository: open-telemetry/opentelemetry-swift
+- id: zig-sdk
+ kind: sig
+ sigCategory: implementation
+ name: 'Zig: SDK'
+ parent: none
+ people:
+ - gcLiaison: alolita
+ - tcSponsor:
+ username: jmacd
+ level: tbd
- id: network
kind: sig
sigCategory: implementation
@@ -1156,3 +1166,61 @@
- slack:
name: '#otel-localization-uk'
id: C097ZNPM3LK
+- id: agentic-workflow
+ kind: initiative
+ name: OpenTelemetry Collector Agentic Workflows
+ parent: collector
+ people:
+ - lead: pavolloffay
+ - lead: niwoerner
+- id: otel-blueprints
+ kind: initiative
+ name: OTel Blueprints
+ parent: end-user
+ people:
+ - lead: danielgblanco
+ - lead: dmathieu
+ resources:
+ - meeting:
+ schedule: Every other Thursday at 10:00 PT (alternating with general End-User SIG meetings)
+ gDocNotes: 1e-UNZA3Tuno9b53RQbe--whUcO0VIXF3P81oXsrBK6g
+ - slack:
+ name: '#otel-blueprints'
+ id: C0A844D6ZCH
+- id: zig-sig-bootstrap
+ kind: initiative
+ name: Bootstrap Zig Special Interest Group
+ parent: zig-sdk
+ people:
+ - lead: inge4pres
+ - lead: kmos
+ - lead: hendriknielaender
+- id: collector-v1
+ kind: initiative
+ name: Collector v1
+ parent: collector
+ people:
+ - lead: tbd
+- id: cicd-phase-2
+ kind: initiative
+ name: CI/CD Observability SIG Phase 2
+ parent: semconv-cicd
+ people:
+ - lead: horovits
+ - lead: adrielp
+- id: ecosystem-explorer
+ kind: initiative
+ name: OpenTelemetry Ecosystem Explorer
+ parent: communications
+ people:
+ - lead: jaydeluca
+ - lead: svrnm
+ - lead: mx-psi
+ resources:
+ - roadmapProject: 175
+- id: getting-started-docs
+ kind: initiative
+ name: New Getting Started Documentation and Reference Application
+ parent: communications
+ people:
+ - lead: svrnm