From fc20f12128fcd01ad9c493651b3bc8480c13986d Mon Sep 17 00:00:00 2001 From: jarvis-at-skic Date: Thu, 3 Sep 2026 19:18:41 +0000 Subject: [PATCH] [verified] docs: report AeroSim delivery progress --- docs/projects/aerosim.md | 16 ++++++++++++++-- scripts/verify-portal.mjs | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/docs/projects/aerosim.md b/docs/projects/aerosim.md index b135beb..10c5c62 100644 --- a/docs/projects/aerosim.md +++ b/docs/projects/aerosim.md @@ -48,10 +48,22 @@ A playable MVP covering a light trainer, commercial airliner, and fighter-style - Project organization: [corp-v1-aerosim](https://gitea.lego-cloud.eu/corp-v1-aerosim) - Skills organization: [corp-v1-aerosim-skills-code-agent](https://gitea.lego-cloud.eu/corp-v1-aerosim-skills-code-agent) -- [Application repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim) — `test` at `14b5c0e8f25215d8bb4f41edcc0cdff4a87c342c` -- [Documentation repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation) — `test` at `5f674525f6c8b5ce29fe2653350c6188fb97ea01` +- [Application repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim) — `test` at `58d33ffbd3ca21ffdc5882a75de8fe71c25188b6` +- [Documentation repository](https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation) — `test` at `29d5e7810e63f3407f62730c1b2c71bc0644310b` - [Published documentation](https://pages.apps.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/) — protected by the existing Keycloak access layer +## Delivery progress checkpoint — 2026-09-03 + +Release `1.0.0` contains 114 Tasks. Progress is reported by lifecycle checkpoint rather than collapsing implementation and release into one percentage. + +| Measure | Progress | Meaning | +|---|---:|---| +| Canonical `ToBeReleased` | 4 / 114 (3.5%) | `TASK-0001`, `TASK-0008`, `TASK-0011`, and `TASK-0014` have reviewed implementation, merged application changes, successful integrated CI, and reconciled canonical delivery evidence. | +| Repository-verified implementation | 5 / 114 (4.4%) | The four canonical Tasks plus `TASK-0015`, merged through application PR #13 at application `test` SHA `58d33ffbd3ca21ffdc5882a75de8fe71c25188b6`; its canonical task-history reconciliation is pending completion of the active Wave 2 delivery. | +| Released | 0 / 114 (0%) | No Release `1.0.0` artifact has been approved and released. `ToBeReleased` is not release authorization. | + +Wave 1 is implemented and reconciled. Wave 2 is active: `TASK-0015` is integrated, while `TASK-0012`, `TASK-0073`, and `TASK-0114` remain under automated review and repair. The authoritative task-level lifecycle remains in the [AeroSim documentation](https://pages.apps.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/); this Board record is a dated portfolio checkpoint, not a second task database. + ## Discord Exactly seven same-project channels exist in dedicated category `corp-v1-aerosim` (`1542627633123299359`), in lifecycle order: diff --git a/scripts/verify-portal.mjs b/scripts/verify-portal.mjs index 13e619f..b403e68 100644 --- a/scripts/verify-portal.mjs +++ b/scripts/verify-portal.mjs @@ -57,6 +57,27 @@ for (const memberId of ['1518725627845283888', '476287310627864587', '7731098554 assert.match(board, /Only these Board members may approve a project kickoff or project closure/i); assert.match(board, /Only these Board members may approve changes to `corp-v1--main`/i); +const aerosimProject = read('docs/projects/aerosim.md'); +for (const marker of [ + 'Delivery progress checkpoint — 2026-09-03', + '4 / 114', + '3.5%', + '5 / 114', + '4.4%', + '0 / 114', + 'TASK-0015', + 'PR #13', + '58d33ffbd3ca21ffdc5882a75de8fe71c25188b6', + '29d5e7810e63f3407f62730c1b2c71bc0644310b', +]) { + assert.ok(aerosimProject.includes(marker), `AeroSim progress checkpoint is missing: ${marker}`); +} +assert.match(aerosimProject, /Released[^\n]*0\s*\/\s*114[^\n]*0%/i, 'AeroSim must distinguish released progress'); +assert.match(aerosimProject, /ToBeReleased[^\n]*4\s*\/\s*114[^\n]*3\.5%/i, 'AeroSim must expose canonical delivery completion'); +assert.match(aerosimProject, /repository-verified[^\n]*5\s*\/\s*114[^\n]*4\.4%/i, 'AeroSim must expose pending-reconciliation implementation evidence'); +assert.doesNotMatch(aerosimProject, /Application repository[^\n]*14b5c0e8f25215d8bb4f41edcc0cdff4a87c342c/, 'stale AeroSim application SHA must not remain'); +assert.doesNotMatch(aerosimProject, /Documentation repository[^\n]*5f674525f6c8b5ce29fe2653350c6188fb97ea01/, 'stale AeroSim documentation SHA must not remain'); + const lifecycle = read('docs/governance/project-lifecycle.md'); assert.match(lifecycle, /Board approval/i, 'project lifecycle must require Board approval'); assert.match(lifecycle, /central project-channel reference skill/i, 'lifecycle must govern central channel-reference skill changes');