Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ec30f4ae56 | |||
| 2cd9ae150d | |||
| ae0cb589ab | |||
| b0a2728f59 |
@@ -364,6 +364,31 @@ historical gap (no git-history rewrite).
|
|||||||
Milestone COMPLETE gate: review → ship `v1.9.0` (feature milestone, next
|
Milestone COMPLETE gate: review → ship `v1.9.0` (feature milestone, next
|
||||||
minor per run.md — v1.8 shipped `v1.8.0`) → audit.
|
minor per run.md — v1.8 shipped `v1.8.0`) → audit.
|
||||||
|
|
||||||
|
## Patch v1.9.1 (complete, tag `v1.9.1`)
|
||||||
|
|
||||||
|
Docs-only NFR patch on the v1.9 line. Two leadership-facing presentation
|
||||||
|
decks (How the Platform Works + The Developer Experience) for senior
|
||||||
|
leadership (CTO, Head of Cloud, Head of Infrastructure, Head of DevOps).
|
||||||
|
Each deck has a full markdown source of truth (with speaker notes + mermaid
|
||||||
|
diagrams) and a lean Marp deck (no speaker notes, embedded PNG diagrams). A
|
||||||
|
README documents the 3-step slide creation process (full markdown → Marp
|
||||||
|
synthesis → PPTX export) with conventions, build commands, and maturity
|
||||||
|
framing rules. No code changes; 494 tests pass; `run_ci.sh` +
|
||||||
|
`run_platform.sh --check-only` green.
|
||||||
|
|
||||||
|
## Patch v1.9.2 (complete, tag `v1.9.2`)
|
||||||
|
|
||||||
|
Docs-only NFR patch on the v1.9 line. Applies the S&P Global Energy brand
|
||||||
|
visual identity to both Marp presentation decks. Brand colors extracted
|
||||||
|
from the live spglobal.com compiled Tailwind CSS and SVG logo: red-core
|
||||||
|
`#D6002A`, grey-90 `#1B1B1B`, grey-80 `#2E2E2E`, grey-5 `#F0F0F0`, Akkurat
|
||||||
|
Pro corporate typeface. Title headers changed to full platform name.
|
||||||
|
Footer changed from 'Confidential · For Senior Leadership' to 'Internal'.
|
||||||
|
Title slide subtitle removed. Last DX slide renamed from 'The Outcome for
|
||||||
|
Leadership' to 'The Desired Outcomes'. Marp `theme: default` kept as base.
|
||||||
|
No code changes; 494 tests pass; `run_ci.sh` + `run_platform.sh --check-only`
|
||||||
|
green.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
### v1.0 (Prior milestone — the demo)
|
### v1.0 (Prior milestone — the demo)
|
||||||
|
|||||||
@@ -11,6 +11,8 @@
|
|||||||
- **v1.6 (complete, tag `v1.6.0`):** consumer-facing docs restructure + terminology normalization + environments concept. `docs/` becomes a Jekyll-style GitHub Pages site. `acdl_platform/` is renamed to `core/`. L2 → "modules", L1 → "primitives", "composition" → "pattern" in prose. README restructured: Features + Roadmap (no internal status), repository roles restated (consumer = app code + contracts + CI definitions), mermaid fixed (visible text, security-checks + infrastructure-apply stages, no tool names), credentials section minus go-gitea/waivers. Platform-managed environments concept + a minimal onboarding scaffold. `.ciagent/` + `.gitea/` references removed from all consumer-facing docs.
|
- **v1.6 (complete, tag `v1.6.0`):** consumer-facing docs restructure + terminology normalization + environments concept. `docs/` becomes a Jekyll-style GitHub Pages site. `acdl_platform/` is renamed to `core/`. L2 → "modules", L1 → "primitives", "composition" → "pattern" in prose. README restructured: Features + Roadmap (no internal status), repository roles restated (consumer = app code + contracts + CI definitions), mermaid fixed (visible text, security-checks + infrastructure-apply stages, no tool names), credentials section minus go-gitea/waivers. Platform-managed environments concept + a minimal onboarding scaffold. `.ciagent/` + `.gitea/` references removed from all consumer-facing docs.
|
||||||
- **v1.7 (complete, tag `v1.7.0`):** production platform + contract ingestion + pipeline maturation. Rename `static-assets` → `static-assets` (D-048 — incl. `.ciagent/` historical narrative). Author `cloudfront` + `waf` primitives; augment `static-assets` to a production-ready S3 + CloudFront (OAC) + WAF stack (D-049). Tagging-standard enforcement (Checkov custom rule, D-043 closure, D-054). Wiz adapter stub (D-052) + Kyverno K8s-native adapter (D-053). Platform Lambda + DynamoDB `acdl-contracts` table for contract ingestion (D-051) + cross-account IAM. Deploy outputs via SSM SecureString + GitHub PR comment (D-050). Uniform error reporting via the Lambda `report_error` action → GitHub issue on the platform repo (D-055); Gitea excluded. Stage comments after every successful pipeline stage. Three platform pipelines (platform-test unit+integration, primitives-plan, patterns-plan). Release job with semver + MAJOR.MINOR/MAJOR tag maintenance (D-057). `uses:`/`ref:` bumped to `@v1.6`; floating `v1.6` + `v1` tags created in Phase 22. Remove the legacy consumer-repos directory (a v1.2 artifact, removed in v1.7); add validated per-module examples (`modules/<name>/examples/`, D-058) including a new RDS primitive demonstrating multi-engine variation (D-059).
|
- **v1.7 (complete, tag `v1.7.0`):** production platform + contract ingestion + pipeline maturation. Rename `static-assets` → `static-assets` (D-048 — incl. `.ciagent/` historical narrative). Author `cloudfront` + `waf` primitives; augment `static-assets` to a production-ready S3 + CloudFront (OAC) + WAF stack (D-049). Tagging-standard enforcement (Checkov custom rule, D-043 closure, D-054). Wiz adapter stub (D-052) + Kyverno K8s-native adapter (D-053). Platform Lambda + DynamoDB `acdl-contracts` table for contract ingestion (D-051) + cross-account IAM. Deploy outputs via SSM SecureString + GitHub PR comment (D-050). Uniform error reporting via the Lambda `report_error` action → GitHub issue on the platform repo (D-055); Gitea excluded. Stage comments after every successful pipeline stage. Three platform pipelines (platform-test unit+integration, primitives-plan, patterns-plan). Release job with semver + MAJOR.MINOR/MAJOR tag maintenance (D-057). `uses:`/`ref:` bumped to `@v1.6`; floating `v1.6` + `v1` tags created in Phase 22. Remove the legacy consumer-repos directory (a v1.2 artifact, removed in v1.7); add validated per-module examples (`modules/<name>/examples/`, D-058) including a new RDS primitive demonstrating multi-engine variation (D-059).
|
||||||
- **v1.8 (complete, tag `v1.8.0`):** P1 remediation + uptime monitoring + engineering standards + encryption/deletion-protection by default + decommission alias + path documentation. Clears 8 pending P1 issues (P1-3..P1-9 + S1). Adds per-stack CMK + encryption-by-default for all primitives. Adds deletion-protection-by-default + L2 feature flag. Adds uptime-kuma primitive (ECS Fargate, deployed by default after L2, separate state, feature flag, alert channels). Adds decommission mode (2-step pipeline with HITL SRE gates + CMDB-validated change request). Adds `modules/STANDARDS.md` (L1+L2 authoring + review standards). Adds `schemas/README.md`, `pipelines/README.md`, `adapters/README.md`.
|
- **v1.8 (complete, tag `v1.8.0`):** P1 remediation + uptime monitoring + engineering standards + encryption/deletion-protection by default + decommission alias + path documentation. Clears 8 pending P1 issues (P1-3..P1-9 + S1). Adds per-stack CMK + encryption-by-default for all primitives. Adds deletion-protection-by-default + L2 feature flag. Adds uptime-kuma primitive (ECS Fargate, deployed by default after L2, separate state, feature flag, alert channels). Adds decommission mode (2-step pipeline with HITL SRE gates + CMDB-validated change request). Adds `modules/STANDARDS.md` (L1+L2 authoring + review standards). Adds `schemas/README.md`, `pipelines/README.md`, `adapters/README.md`.
|
||||||
|
- **v1.9.1 (complete, tag `v1.9.1`):** leadership presentation decks. Two leadership-facing presentation decks (How the Platform Works + The Developer Experience) for senior leadership (CTO, Head of Cloud, Head of Infrastructure, Head of DevOps). Each deck has a full markdown source of truth (with speaker notes + mermaid diagrams) and a lean Marp deck (no speaker notes, embedded PNG diagrams). A README documents the 3-step slide creation process (full markdown → Marp synthesis → PPTX export). Docs-only NFR patch.
|
||||||
|
- **v1.9.2 (complete, tag `v1.9.2`):** S&P Global Energy theme for presentation decks. Applies the S&P Global Energy brand visual identity (red-core #D6002A, grey-90 #1B1B1B, Akkurat Pro font) to both Marp decks. Title headers changed to full platform name. Footer 'Confidential' → 'Internal'. Title slide subtitle removed. Last DX slide renamed to 'The Desired Outcomes'. Docs-only NFR patch.
|
||||||
- **v1.0 demo URL:** https://git.cloudinit.dev/continuous-intelligence/acdl-evidence/raw/branch/main/index.html
|
- **v1.0 demo URL:** https://git.cloudinit.dev/continuous-intelligence/acdl-evidence/raw/branch/main/index.html
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -63,9 +63,32 @@ Synthesize the full markdown into a lean Marp deck:
|
|||||||
- **Tighter prose** than Step 1 — strip the speaker-note nuance; keep the
|
- **Tighter prose** than Step 1 — strip the speaker-note nuance; keep the
|
||||||
leadership-relevant selling points.
|
leadership-relevant selling points.
|
||||||
|
|
||||||
### Step 3 — PPTX export
|
### Step 3 — Render to HTML and PPTX
|
||||||
|
|
||||||
Export the Marp deck to PPTX for stakeholders who want a slide file:
|
Both formats are derived from the Marp deck. **HTML is committed to the repo**
|
||||||
|
(viewable in any browser, self-contained with base64-embedded images). **PPTX
|
||||||
|
is uploaded to the Gitea release** as a downloadable attachment (binary, not
|
||||||
|
committed to git).
|
||||||
|
|
||||||
|
#### HTML export (committed to repo)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
||||||
|
npx --yes @marp-team/marp-cli@latest --allow-local-files \
|
||||||
|
docs/presentations/<deck-name>-marp.md \
|
||||||
|
-o docs/presentations/<deck-name>.html
|
||||||
|
```
|
||||||
|
|
||||||
|
HTML export inlines images as base64 data URIs — no `--allow-local-files`
|
||||||
|
needed for self-contained output, but it's required when the Marp deck
|
||||||
|
references local PNG assets. The resulting HTML is a single self-contained
|
||||||
|
file that renders the full deck with the S&P Global Energy theme.
|
||||||
|
|
||||||
|
**Re-render the HTML whenever the Marp source changes.** The HTML files are
|
||||||
|
committed artifacts, not generated on-the-fly — they must be re-rendered and
|
||||||
|
re-committed when the Marp deck is updated.
|
||||||
|
|
||||||
|
#### PPTX export (uploaded to Gitea release)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
||||||
@@ -75,7 +98,9 @@ CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
|||||||
```
|
```
|
||||||
|
|
||||||
The `--allow-local-files` flag is **required** for PPTX export so the local
|
The `--allow-local-files` flag is **required** for PPTX export so the local
|
||||||
PNG diagrams are embedded in the file.
|
PNG diagrams are embedded in the file. PPTX files are not committed to the
|
||||||
|
repo (binary, no meaningful diffs) — they are uploaded to the Gitea release
|
||||||
|
as downloadable attachments.
|
||||||
|
|
||||||
## Directory layout
|
## Directory layout
|
||||||
|
|
||||||
@@ -84,8 +109,10 @@ docs/presentations/
|
|||||||
├── README.md ← this file
|
├── README.md ← this file
|
||||||
├── how-the-platform-works.md ← Step 1: full source of truth
|
├── how-the-platform-works.md ← Step 1: full source of truth
|
||||||
├── how-the-platform-works-marp.md ← Step 2: Marp deck
|
├── how-the-platform-works-marp.md ← Step 2: Marp deck
|
||||||
|
├── how-the-platform-works.html ← Step 3: rendered HTML (committed)
|
||||||
├── the-developer-experience.md ← Step 1: full source of truth
|
├── the-developer-experience.md ← Step 1: full source of truth
|
||||||
├── the-developer-experience-marp.md ← Step 2: Marp deck
|
├── the-developer-experience-marp.md ← Step 2: Marp deck
|
||||||
|
├── the-developer-experience.html ← Step 3: rendered HTML (committed)
|
||||||
└── assets/
|
└── assets/
|
||||||
├── puppeteer-config.json ← no-sandbox config for mmdc
|
├── puppeteer-config.json ← no-sandbox config for mmdc
|
||||||
├── mmd/ ← mermaid source files (Step 2 input)
|
├── mmd/ ← mermaid source files (Step 2 input)
|
||||||
@@ -170,19 +197,23 @@ done
|
|||||||
The `puppeteer-config.json` passes `--no-sandbox` to the headless browser
|
The `puppeteer-config.json` passes `--no-sandbox` to the headless browser
|
||||||
(required when running as root in this environment).
|
(required when running as root in this environment).
|
||||||
|
|
||||||
### Export a Marp deck to HTML (for browser preview)
|
### Export a Marp deck to HTML (committed to repo)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
||||||
npx --yes @marp-team/marp-cli@latest \
|
npx --yes @marp-team/marp-cli@latest --allow-local-files \
|
||||||
docs/presentations/<deck-name>-marp.md \
|
docs/presentations/<deck-name>-marp.md \
|
||||||
-o <output-path>.html
|
-o docs/presentations/<deck-name>.html
|
||||||
```
|
```
|
||||||
|
|
||||||
HTML export inlines images as base64 data URIs — no `--allow-local-files`
|
HTML export inlines images as base64 data URIs. The `--allow-local-files`
|
||||||
needed.
|
flag is needed when the Marp deck references local PNG assets (like the
|
||||||
|
diagram images in `assets/png/`). The resulting HTML is self-contained.
|
||||||
|
|
||||||
### Export a Marp deck to PPTX (for stakeholders)
|
**The HTML files are committed artifacts** — re-render and re-commit whenever
|
||||||
|
the Marp source changes.
|
||||||
|
|
||||||
|
### Export a Marp deck to PPTX (uploaded to Gitea release)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
||||||
@@ -192,7 +223,8 @@ CHROME_PATH=/root/.cache/ms-playwright/chromium-1217/chrome-linux64/chrome \
|
|||||||
```
|
```
|
||||||
|
|
||||||
`--allow-local-files` is **required** for PPTX so local PNG diagrams are
|
`--allow-local-files` is **required** for PPTX so local PNG diagrams are
|
||||||
embedded in the file.
|
embedded in the file. PPTX files are not committed to git — upload them as
|
||||||
|
attachments to the Gitea release.
|
||||||
|
|
||||||
## Adding a new presentation
|
## Adding a new presentation
|
||||||
|
|
||||||
@@ -203,8 +235,11 @@ embedded in the file.
|
|||||||
and render them to `assets/png/` (command above).
|
and render them to `assets/png/` (command above).
|
||||||
3. **Synthesize the Marp deck** as `<deck-name>-marp.md` with frontmatter,
|
3. **Synthesize the Marp deck** as `<deck-name>-marp.md` with frontmatter,
|
||||||
no speaker notes, embedded PNGs, and maturity badges.
|
no speaker notes, embedded PNGs, and maturity badges.
|
||||||
4. **Export to PPTX** with `--allow-local-files`.
|
4. **Render to HTML** with `--allow-local-files` and commit the HTML to
|
||||||
5. **Verify** the PPTX slide count and that media files are embedded:
|
`docs/presentations/<deck-name>.html`.
|
||||||
|
5. **Render to PPTX** with `--allow-local-files` and upload to the Gitea
|
||||||
|
release (do not commit PPTX to git).
|
||||||
|
6. **Verify** the PPTX slide count and that media files are embedded:
|
||||||
```bash
|
```bash
|
||||||
python3 -c "
|
python3 -c "
|
||||||
import zipfile, re
|
import zipfile, re
|
||||||
@@ -217,7 +252,7 @@ embedded in the file.
|
|||||||
|
|
||||||
## Current decks
|
## Current decks
|
||||||
|
|
||||||
| Deck | Source of truth (Step 1) | Marp deck (Step 2) | Audience |
|
| Deck | Source of truth (Step 1) | Marp deck (Step 2) | Rendered HTML (Step 3) | Audience |
|
||||||
|---|---|---|---|
|
|---|---|---|---|---|
|
||||||
| How the Platform Works | `how-the-platform-works.md` | `how-the-platform-works-marp.md` | CTO, Head of Cloud, Head of Infra, Head of DevOps |
|
| How the Platform Works | `how-the-platform-works.md` | `how-the-platform-works-marp.md` | `how-the-platform-works.html` | CTO, Head of Cloud, Head of Infra, Head of DevOps |
|
||||||
| The Developer Experience | `the-developer-experience.md` | `the-developer-experience-marp.md` | CTO, Head of Cloud, Head of Infra, Head of DevOps |
|
| The Developer Experience | `the-developer-experience.md` | `the-developer-experience-marp.md` | `the-developer-experience.html` | CTO, Head of Cloud, Head of Infra, Head of DevOps |
|
||||||
@@ -3,20 +3,21 @@ marp: true
|
|||||||
theme: default
|
theme: default
|
||||||
paginate: true
|
paginate: true
|
||||||
size: 16x9
|
size: 16x9
|
||||||
header: "ACDL — How the Platform Works"
|
header: "Agentic Cloud Delivery Platform — How The Platform Works"
|
||||||
footer: "Confidential · For Senior Leadership"
|
footer: "Internal"
|
||||||
style: |
|
style: |
|
||||||
section {
|
section {
|
||||||
font-family: "Inter", "Segoe UI", "Helvetica Neue", sans-serif;
|
font-family: "Akkurat Pro", "Helvetica Neue", "Arial", sans-serif;
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
|
color: #1B1B1B;
|
||||||
}
|
}
|
||||||
h1 { color: #1a365d; font-size: 34px; margin-bottom: 0.3em; }
|
h1 { color: #D6002A; font-size: 34px; margin-bottom: 0.3em; }
|
||||||
h2 { color: #1a365d; font-size: 26px; margin-bottom: 0.2em; }
|
h2 { color: #D6002A; font-size: 26px; margin-bottom: 0.2em; }
|
||||||
section.title { background: #1a365d; color: #fff; }
|
section.title { background: #1B1B1B; color: #fff; border-top: 8px solid #D6002A; }
|
||||||
section.title h1 { color: #fff; }
|
section.title h1 { color: #fff; }
|
||||||
table { font-size: 18px; width: 100%; }
|
table { font-size: 18px; width: 100%; }
|
||||||
th { background: #edf2f7; }
|
th { background: #F0F0F0; }
|
||||||
blockquote { border-left: 4px solid #3182ce; color: #2d3748; font-size: 20px; }
|
blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; }
|
||||||
img { display: block; margin: 0 auto; max-height: 320px; }
|
img { display: block; margin: 0 auto; max-height: 320px; }
|
||||||
.badge {
|
.badge {
|
||||||
display: inline-block; padding: 2px 8px; border-radius: 4px;
|
display: inline-block; padding: 2px 8px; border-radius: 4px;
|
||||||
@@ -29,14 +30,10 @@ style: |
|
|||||||
<!-- _class: title -->
|
<!-- _class: title -->
|
||||||
<!-- _paginate: false -->
|
<!-- _paginate: false -->
|
||||||
|
|
||||||
# How the Platform Works
|
# Agentic Cloud Delivery Platform — How The Platform Works
|
||||||
|
|
||||||
**ACDL — Agentic Cloud Delivery Platform**
|
|
||||||
|
|
||||||
Senior Leadership Briefing
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
section.title h1 { font-size: 42px; }
|
section.title h1 { font-size: 36px; }
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -3,20 +3,21 @@ marp: true
|
|||||||
theme: default
|
theme: default
|
||||||
paginate: true
|
paginate: true
|
||||||
size: 16x9
|
size: 16x9
|
||||||
header: "ACDL — The Developer Experience"
|
header: "Agentic Cloud Delivery Platform — The Developer Experience"
|
||||||
footer: "Confidential · For Senior Leadership"
|
footer: "Internal"
|
||||||
style: |
|
style: |
|
||||||
section {
|
section {
|
||||||
font-family: "Inter", "Segoe UI", "Helvetica Neue", sans-serif;
|
font-family: "Akkurat Pro", "Helvetica Neue", "Arial", sans-serif;
|
||||||
font-size: 22px;
|
font-size: 22px;
|
||||||
|
color: #1B1B1B;
|
||||||
}
|
}
|
||||||
h1 { color: #1a365d; font-size: 34px; margin-bottom: 0.3em; }
|
h1 { color: #D6002A; font-size: 34px; margin-bottom: 0.3em; }
|
||||||
h2 { color: #1a365d; font-size: 26px; margin-bottom: 0.2em; }
|
h2 { color: #D6002A; font-size: 26px; margin-bottom: 0.2em; }
|
||||||
section.title { background: #1a365d; color: #fff; }
|
section.title { background: #1B1B1B; color: #fff; border-top: 8px solid #D6002A; }
|
||||||
section.title h1 { color: #fff; }
|
section.title h1 { color: #fff; }
|
||||||
table { font-size: 18px; width: 100%; }
|
table { font-size: 18px; width: 100%; }
|
||||||
th { background: #edf2f7; }
|
th { background: #F0F0F0; }
|
||||||
blockquote { border-left: 4px solid #3182ce; color: #2d3748; font-size: 20px; }
|
blockquote { border-left: 4px solid #D6002A; color: #2E2E2E; font-size: 20px; }
|
||||||
pre { font-size: 16px; line-height: 1.3; }
|
pre { font-size: 16px; line-height: 1.3; }
|
||||||
code { font-size: 16px; }
|
code { font-size: 16px; }
|
||||||
img { display: block; margin: 0 auto; max-height: 300px; }
|
img { display: block; margin: 0 auto; max-height: 300px; }
|
||||||
@@ -31,14 +32,10 @@ style: |
|
|||||||
<!-- _class: title -->
|
<!-- _class: title -->
|
||||||
<!-- _paginate: false -->
|
<!-- _paginate: false -->
|
||||||
|
|
||||||
# The Developer Experience
|
# Agentic Cloud Delivery Platform — The Developer Experience
|
||||||
|
|
||||||
**ACDL — Agentic Cloud Delivery Platform**
|
|
||||||
|
|
||||||
Senior Leadership Briefing
|
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
section.title h1 { font-size: 42px; }
|
section.title h1 { font-size: 36px; }
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -290,7 +287,7 @@ Developers pick from **pre-built, security-reviewed building blocks** — they d
|
|||||||
<!-- _class: title -->
|
<!-- _class: title -->
|
||||||
<!-- _paginate: false -->
|
<!-- _paginate: false -->
|
||||||
|
|
||||||
# The Outcome for Leadership
|
# The Desired Outcomes
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
section { font-size: 22px; }
|
section { font-size: 22px; }
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user