From 97da8c9fb5cecbf70cdcef9f7299832ee0a487f2 Mon Sep 17 00:00:00 2001 From: Michael Heller <21163552+mdheller@users.noreply.github.com> Date: Sat, 4 Jul 2026 17:23:15 -0400 Subject: [PATCH] =?UTF-8?q?feat(workroom):=20captureCadence=20=E2=80=94=20?= =?UTF-8?q?bind=20objectives=20to=20the=20governed=20capture=20cadence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fills the one gap the agentic-OS recon found in the workspace model: the ProfessionalWorkroom (the objective container) had no cadence/schedule concept. Adds an optional captureCadence block that COMPOSES over the canonical sourceos- spec CaptureCadence + ReadinessScore (cadenceRef / readinessScoreRef URNs) and tracks the workroom's current position + readiness gate — rather than duplicating the cadence model. Optional/back-compat; example demonstrates it; validators pass. --- .../professional-workroom.schema.json | 23 +++++++++++++++++++ .../professional-workroom.v0.1.example.json | 7 ++++++ 2 files changed, 30 insertions(+) diff --git a/contracts/workspace/professional-workroom.schema.json b/contracts/workspace/professional-workroom.schema.json index d9c3294..26cac4a 100644 --- a/contracts/workspace/professional-workroom.schema.json +++ b/contracts/workspace/professional-workroom.schema.json @@ -69,6 +69,29 @@ "semanticReceiptRefs": { "type": "array", "items": { "type": "string" } }, "evidenceRefs": { "type": "array", "items": { "type": "string" } }, "adoptionEventRefs": { "type": "array", "items": { "type": "string" } }, + "captureCadence": { + "type": "object", + "additionalProperties": false, + "description": "Governed capture cadence for this objective — the sprint the agentic operating system runs it through. Composes over the canonical sourceos-spec CaptureCadence + ReadinessScore rather than duplicating them; tracks the current position and readiness gate.", + "properties": { + "cadenceRef": { + "type": "string", + "description": "urn:srcos:capture-cadence:… — the canonical cadence definition (weeks, min-readiness gates, exit decisions)." + }, + "currentWeek": { "type": "integer", "minimum": 0 }, + "minReadiness": { + "type": "number", + "minimum": 0, + "maximum": 1, + "description": "Minimum readiness required to exit the current week's gate." + }, + "nextReviewAt": { "type": "string", "description": "ISO-8601 timestamp of the next cadence review." }, + "readinessScoreRef": { + "type": "string", + "description": "urn:srcos:readiness-score:… — the current readiness scorecard for this objective." + } + } + }, "tasks": { "type": "array", "items": { diff --git a/contracts/workspace/professional-workroom.v0.1.example.json b/contracts/workspace/professional-workroom.v0.1.example.json index 25badf1..afa5b70 100644 --- a/contracts/workspace/professional-workroom.v0.1.example.json +++ b/contracts/workspace/professional-workroom.v0.1.example.json @@ -71,5 +71,12 @@ "labels": { "program": "professional-intelligence-os", "gate": "gate-3" + }, + "captureCadence": { + "cadenceRef": "urn:srcos:capture-cadence:standard-8wk", + "currentWeek": 4, + "minReadiness": 0.5, + "nextReviewAt": "2026-07-11T13:00:00Z", + "readinessScoreRef": "urn:srcos:readiness-score:pi-demo-0001" } }