docs(milestone): complete v1.12 — Presentation Refinement (tag v1.12.0)

---
ci---
project: acdl
phase: 0
milestone: v1.12
status: complete
requirements:
  covered: [REQ-129, REQ-130, REQ-134, REQ-131, REQ-132, REQ-133]
  partial: []
---
/ci---

Milestone v1.12 complete. All 6 requirements satisfied:
- REQ-129: adapter dedup defect fixed (CAP-013 Verified).
- REQ-130: 2 regression-probe bugs fixed (CAP-017/018).
- REQ-134: lifecycle tests plan-only default + ACDL_LIFECYCLE_MODE flag.
- REQ-131: decks match CAPABILITY_INVENTORY.md (22/22 Verified, zero
  stale claims except the honest 'v1.10 status is closed' disclosure).
- REQ-132: decks reflect v1.11 architecture + roadmap (v1.10 no longer
  NEXT); version refs bumped to @v1.12.
- REQ-133: A6 (real cost figures + pre-mortem) + A7 (stateless adapter +
  lifecycle pipeline); HTML re-rendered; PPTX exported for the release.

Verification: 522 tests pass; 22/22 capabilities Verified (D-091);
run_platform.sh --check-only green; run_ci.sh green; ci-doc-verifier
grep clean; multi-persona review clean (P1 remediated).

ROADMAP.md v1.12 section added; v1.11 marked complete; config.json
status -> complete, ship_tag v1.12.0. Version refs @v1.11 -> @v1.12
(decks re-rendered). PPTX in /tmp/v1.12-release/ for the Gitea upload.
This commit is contained in:
Jon Chery
2026-07-29 13:48:06 +00:00
parent 6d8c098205
commit 0f6d10a2b6
7 changed files with 103 additions and 29 deletions
@@ -109,7 +109,7 @@ Developers see **what the platform is doing**, in real time. <span class="badge
Consumers control **when** they absorb platform improvements. <span class="badge testing">Testing</span>
- **Floating MAJOR + MINOR tags** (e.g. `@v1.11`) — a consumer automatically receives patch updates within the line
- **Floating MAJOR + MINOR tags** (e.g. `@v1.12`) — a consumer automatically receives patch updates within the line
- **Semantic versioning with a clear contract:** interface → MAJOR, behavior → MINOR, lifecycle → PATCH
- **A consumer can pin to an exact version** for maximum stability, or float on MAJOR only (`@v1`) to absorb new features on their own cadence
- **Unversioned references (`@main`, bare) are discouraged** — the versioned tag is the only immutability lever
@@ -153,11 +153,11 @@ The contract is environment-agnostic. The platform raises the bar automatically.
```yaml
jobs:
dev:
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract.yml, environment: dev }
qa:
needs: dev
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract.yml, environment: qa }
```
@@ -169,11 +169,11 @@ jobs:
```yaml
jobs:
dev:
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract-dev.yaml }
qa:
needs: dev
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract-qa.yaml }
```
@@ -197,7 +197,7 @@ td { font-size: 14px; }
Tearing down a stack is **as deliberate as deploying one.** <span class="badge testing">Testing</span>
```yaml
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with:
contract: .acdl/contract.yml
mode: decommission
@@ -62,7 +62,7 @@
**Talking points:**
- This is the "no surprise upgrades" story — consumers aren't forced to chase the platform, and the platform isn't forced to support N forks of every workflow
- Floating MAJOR + MINOR tags (e.g. `@v1.11`) — a consumer automatically receives patch updates within the line. Pin to exact version for stability, or float on MAJOR only for new features
- Floating MAJOR + MINOR tags (e.g. `@v1.12`) — a consumer automatically receives patch updates within the line. Pin to exact version for stability, or float on MAJOR only for new features
- Semantic versioning with a clear contract: interface → MAJOR, behavior → MINOR, lifecycle → PATCH
- Unversioned references (`@main`, bare) are discouraged — the versioned tag is the only immutability lever a consumer has
- The automated release job computes the next semver on merge to main, creates the tag, and updates the floating tags — no manual release process
@@ -307,7 +307,7 @@ em.story { color: #6B7280; font-size: 16px; font-style: italic; }
<p><em class="story">You control when you absorb platform improvements — no surprise upgrades.</em></p>
<p>Consumers control <strong>when</strong> they absorb platform improvements. <span class="badge testing">Testing</span></p>
<ul>
<li><strong>Floating MAJOR + MINOR tags</strong> (e.g. <code>@v1.11</code>) — a consumer automatically receives patch updates within the line</li>
<li><strong>Floating MAJOR + MINOR tags</strong> (e.g. <code>@v1.12</code>) — a consumer automatically receives patch updates within the line</li>
<li><strong>Semantic versioning with a clear contract:</strong> interface → MAJOR, behavior → MINOR, lifecycle → PATCH</li>
<li><strong>A consumer can pin to an exact version</strong> for maximum stability, or float on MAJOR only (<code>@v1</code>) to absorb new features on their own cadence</li>
<li><strong>Unversioned references (<code>@main</code>, bare) are discouraged</strong> — the versioned tag is the only immutability lever</li>
@@ -435,11 +435,11 @@ em.story { color: #6B7280; font-size: 16px; font-style: italic; }
<p><strong>Approach A — One contract, one job per environment.</strong> Environment passed by each job.</p>
<pre is="marp-pre" data-auto-scaling="downscale-only"><code class="language-yaml"><span class="hljs-attr">jobs:</span>
<span class="hljs-attr">dev:</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.11</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.12</span>
<span class="hljs-attr">with:</span> { <span class="hljs-attr">contract:</span> <span class="hljs-string">.acdl/contract.yml</span>, <span class="hljs-attr">environment:</span> <span class="hljs-string">dev</span> }
<span class="hljs-attr">qa:</span>
<span class="hljs-attr">needs:</span> <span class="hljs-string">dev</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.11</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.12</span>
<span class="hljs-attr">with:</span> { <span class="hljs-attr">contract:</span> <span class="hljs-string">.acdl/contract.yml</span>, <span class="hljs-attr">environment:</span> <span class="hljs-string">qa</span> }
</code></pre>
</td>
@@ -447,11 +447,11 @@ em.story { color: #6B7280; font-size: 16px; font-style: italic; }
<p><strong>Approach B — Environment-specific contracts.</strong> When inputs differ per environment.</p>
<pre is="marp-pre" data-auto-scaling="downscale-only"><code class="language-yaml"><span class="hljs-attr">jobs:</span>
<span class="hljs-attr">dev:</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.11</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.12</span>
<span class="hljs-attr">with:</span> { <span class="hljs-attr">contract:</span> <span class="hljs-string">.acdl/contract-dev.yaml</span> }
<span class="hljs-attr">qa:</span>
<span class="hljs-attr">needs:</span> <span class="hljs-string">dev</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.11</span>
<span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.12</span>
<span class="hljs-attr">with:</span> { <span class="hljs-attr">contract:</span> <span class="hljs-string">.acdl/contract-qa.yaml</span> }
</code></pre>
</td>
@@ -510,7 +510,7 @@ em.story { color: #6B7280; font-size: 16px; font-style: italic; }
<h1 id="safe-decommission">Safe Decommission</h1>
<p><em class="story">Tearing down is as deliberate as deploying — and just as gated.</em></p>
<p>Tearing down a stack is <strong>as deliberate as deploying one.</strong> <span class="badge testing">Testing</span></p>
<pre is="marp-pre" data-auto-scaling="downscale-only"><code class="language-yaml"><span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.11</span>
<pre is="marp-pre" data-auto-scaling="downscale-only"><code class="language-yaml"><span class="hljs-attr">uses:</span> <span class="hljs-string">acdl/.github/workflows/deploy.yml@v1.12</span>
<span class="hljs-attr">with:</span>
<span class="hljs-attr">contract:</span> <span class="hljs-string">.acdl/contract.yml</span>
<span class="hljs-attr">mode:</span> <span class="hljs-string">decommission</span>
@@ -118,7 +118,7 @@ You control when you absorb platform improvements — no surprise upgrades.
Consumers control **when** they absorb platform improvements. <span class="badge testing">Testing</span>
- **Floating MAJOR + MINOR tags** (e.g. `@v1.11`) — a consumer automatically receives patch updates within the line.
- **Floating MAJOR + MINOR tags** (e.g. `@v1.12`) — a consumer automatically receives patch updates within the line.
- **Semantic versioning with a clear contract:** interface → MAJOR, behavior → MINOR, lifecycle → PATCH.
- **A consumer can pin to an exact version** for maximum stability, or float on MAJOR only (`@v1`) to absorb new features on their own cadence.
- **Unversioned references (`@main`, bare) are discouraged** — the versioned tag is the only immutability lever a consumer has.
@@ -167,11 +167,11 @@ flowchart LR
```yaml
jobs:
dev:
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract.yml, environment: dev }
qa:
needs: dev
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract.yml, environment: qa }
```
@@ -180,11 +180,11 @@ jobs:
```yaml
jobs:
dev:
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract-dev.yaml }
qa:
needs: dev
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with: { contract: .acdl/contract-qa.yaml }
```
@@ -212,7 +212,7 @@ Tearing down is as deliberate as deploying — and just as gated.
Tearing down a stack is **as deliberate as deploying one.** <span class="badge testing">Testing</span>
```yaml
uses: acdl/.github/workflows/deploy.yml@v1.11
uses: acdl/.github/workflows/deploy.yml@v1.12
with:
contract: .acdl/contract.yml
mode: decommission