docs(P00): grill — 4 revisions applied (PROCEED-WITH-REVISIONS, 0.78)
Nova Slides Render / render (push) Failing after 57s
Nova Slides Render / render (push) Failing after 57s
10 axes reviewed. 6 PASS, 4 REVISE. Overall: PROCEED-WITH-REVISIONS. Empirically cleared (not assumed): image format (plain <img src>, conf 0.95) + Marp <div> passthrough (rendered test, conf 0.95). Versioning clean (no v1.22.* tags, conf 1.0). Test inversion risk fully enumerated (conf 0.9). Revisions (binding): G-001 (0.85): purge 'penetrate' repo-wide (docs/ + .ciagent/), not just docs/presentations/. RESEARCH.md/PLAN.md/GRILL.md exempt as decision- history. P4 verify becomes grep -ri penetrat docs/ .ciagent/PROJECT.md .ciagent/CLARIFY.md -> nothing. G-002 (0.85): serialize P3->P4 (not parallel). P4's parser depends on P3's stable render_slides.sh; P4's trimmed deck is what P3b's parser consumes. C8 parallelization overruled. G-003 (0.80): split P3 into P3a (inline_images.py + render_slides.sh + pyproject — low-risk) + P3b (render_pptx.py + parser + attach_release_asset.py — high-risk, isolated). Both serial in Wave 3. G-004 (0.80): merge P5+P6. NFR docs milestone; dedicated review/ship phase is ceremonial. P5 absorbs review/audit/ship. Net phases 7->6. Revised phase/tag plan: v1.22.0 P0 -> v1.22.1 P1 -> v1.22.2 P2 -> v1.22.3 P3a -> v1.22.4 P3b -> v1.22.5 P4 -> v1.22.6 P5 (final = milestone release). ---ci--- project: acdl phase: 0 milestone: v1.23 status: grill ---/ci---
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"phase": 0,
|
||||
"stage": "plan",
|
||||
"stage": "grill",
|
||||
"milestone": "v1.23",
|
||||
"phase_role": "pre_execution",
|
||||
"attempts": 0,
|
||||
|
||||
+131
-84
@@ -1,8 +1,21 @@
|
||||
# PLAN — v1.23 (Nova Deck Cleanup & Python PPTX)
|
||||
|
||||
> NFR milestone (docs/render/test only). Tags on v1.22.x line:
|
||||
> v1.22.0 (P0) → v1.22.1..v1.22.5 (P1–P5) → v1.22.6 (P6 final = milestone
|
||||
> release). 13 requirements (REQ-263..275), 7 phases.
|
||||
> v1.22.0 (P0) → v1.22.1..v1.22.4 (P1–P4) → v1.22.5 (P5 final = milestone
|
||||
> release). 13 requirements (REQ-263..275), 6 phases.
|
||||
>
|
||||
> **GRILL revisions applied** (G-001..G-004, conf 0.78-0.85):
|
||||
> - G-001: "penetrate" purge covers the whole repo (`docs/` +
|
||||
> `.ciagent/`), not just `docs/presentations/`.
|
||||
> - G-002: P3→P4 serialized (not parallel) — P4's parser depends on
|
||||
> P3's stable `render_slides.sh`; P4's trimmed deck is what P3b's
|
||||
> parser consumes.
|
||||
> - G-003: P3 split into P3a (inline_images + render_slides.sh +
|
||||
> pyproject — low-risk) + P3b (render_pptx.py + parser +
|
||||
> attach_release_asset.py — high-risk, isolated).
|
||||
> - G-004: P5+P6 merged — NFR docs milestone; dedicated review/ship
|
||||
> phase is ceremonial overhead. P5 absorbs review/audit/ship. Tag
|
||||
> v1.22.5 = milestone release.
|
||||
|
||||
## Wave Ordering
|
||||
|
||||
@@ -13,25 +26,26 @@ Wave 2 (P2): restore-clean-style (edits -marp.md frontmatter +
|
||||
↓ benefit callouts; edits render_slides.sh; retires
|
||||
↓ nova-sp-theme.css from render)
|
||||
↓
|
||||
Wave 3 (P3 + P4, parallel):
|
||||
P3: inline-images + python-pptx-generator (new scripts +
|
||||
render_slides.sh step + pyproject; ZERO deck-markdown overlap)
|
||||
P4: trim-wordcount + remove "penetrate" (edits -marp.md +
|
||||
talking-points.md; ZERO script overlap with P3)
|
||||
Wave 3 (P3a): inline-images (inline_images.py + render_slides.sh
|
||||
↓ step + pyproject — low-risk, mechanical)
|
||||
↓
|
||||
Wave 4 (P5): ci-tests-readme (workflows, tests, README —
|
||||
depends on all above)
|
||||
Wave 4 (P3b): python-pptx-generator (render_pptx.py + parser +
|
||||
↓ attach_release_asset.py — high-risk, isolated)
|
||||
↓
|
||||
Wave 5 (P6): final-review-ship (review + audit + milestone ship)
|
||||
Wave 5 (P4): trim-wordcount + remove "penetrate" (edits -marp.md +
|
||||
↓ talking-points.md + docs/scope.md + docs/vision.md +
|
||||
↓ .ciagent/*.md "penetrate" purge)
|
||||
↓
|
||||
Wave 6 (P5): ci-tests-readme + review + audit + milestone ship
|
||||
(merged P5+P6 per G-004)
|
||||
```
|
||||
|
||||
**Rationale (C8, conf 0.85):** P1→P2 is serial (both edit `-marp.md`;
|
||||
P1 establishes the single doc, P2 edits its frontmatter). P3+P4
|
||||
parallelize: P3 owns `scripts/inline_images.py` + `scripts/render_pptx.py`
|
||||
+ `scripts/render_slides.sh` + `pyproject.toml` + `scripts/attach_release_asset.py`;
|
||||
P4 owns `docs/presentations/nova-autonomous-cloud-delivery-marp.md` +
|
||||
`*-talking-points.md` — zero file overlap. P5 depends on all (tests
|
||||
assert the final state). P6 is the final gate.
|
||||
**Rationale (C8 revised by G-002/G-003/G-004):** P1→P2 serial (both
|
||||
edit `-marp.md`). P3a→P3b serial (P3b's parser benefits from P3a's
|
||||
stable `render_slides.sh`). P4 serial after P3b (P4's trimmed deck is
|
||||
what P3b's parser must handle; P4's verify render depends on P3a's
|
||||
stable script). P5 final (merged review/audit/ship per G-004 — NFR docs
|
||||
milestone doesn't warrant a dedicated P6).
|
||||
|
||||
---
|
||||
|
||||
@@ -149,15 +163,12 @@ assert the final state). P6 is the final gate.
|
||||
|
||||
---
|
||||
|
||||
## Phase P3 — inline-images + python-pptx-generator (tag v1.22.3)
|
||||
## Phase P3a — inline-images (tag v1.22.3)
|
||||
|
||||
**Requirements:** REQ-268, REQ-269, REQ-270
|
||||
**Persona:** backend-engineer (scripts + pyproject) + lead-developer
|
||||
(deck structure consultation)
|
||||
**Branch:** `phase/03-inline-images-pptx`
|
||||
**Requirements:** REQ-268
|
||||
**Persona:** backend-engineer (scripts + pyproject)
|
||||
**Branch:** `phase/03a-inline-images`
|
||||
**Depends on:** P2 (render_slides.sh `--theme` drop)
|
||||
**Parallel with:** P4 (zero file overlap — P3 owns scripts, P4 owns
|
||||
deck markdown)
|
||||
|
||||
### Tasks
|
||||
|
||||
@@ -174,7 +185,36 @@ deck markdown)
|
||||
- Writes HTML back in place; prints count inlined to stderr.
|
||||
- Usage: `python scripts/inline_images.py <html-path>`.
|
||||
|
||||
2. **`scripts/render_pptx.py`** (REQ-269):
|
||||
2. **`scripts/render_slides.sh`** (REQ-268):
|
||||
- After Step 2 (MARP render), add Step 3: inline images into HTML
|
||||
(`python scripts/inline_images.py "$HTML"`).
|
||||
- Update Step 5 (stage): no change yet (python-pptx is P3b).
|
||||
- Order now: Step 1 mermaid → Step 2 MARP HTML+PPTX → Step 3 inline
|
||||
images → Step 4 stage.
|
||||
|
||||
3. **Verify** (must-have):
|
||||
- `bash scripts/render_slides.sh` produces `.html` with inlined
|
||||
base64 images.
|
||||
- Open the HTML from a different directory (no `assets/` folder) —
|
||||
images display.
|
||||
- `grep -c 'src="assets/' nova-autonomous-cloud-delivery.html`
|
||||
returns 0 (all inlined).
|
||||
- `grep -c 'data:image' nova-autonomous-cloud-delivery.html`
|
||||
returns ≥2 (the deck's 2 images).
|
||||
|
||||
---
|
||||
|
||||
## Phase P3b — python-pptx-generator (tag v1.22.4)
|
||||
|
||||
**Requirements:** REQ-269, REQ-270
|
||||
**Persona:** backend-engineer (scripts + pyproject) + lead-developer
|
||||
(deck structure consultation)
|
||||
**Branch:** `phase/03b-python-pptx`
|
||||
**Depends on:** P3a (stable render_slides.sh with inline step)
|
||||
|
||||
### Tasks
|
||||
|
||||
1. **`scripts/render_pptx.py`** (REQ-269):
|
||||
- Dependency: `python-pptx>=0.6.23` (import at module load; if
|
||||
absent, print "pip install -e .[slides]" and exit 1).
|
||||
- Parses `nova-autonomous-cloud-delivery-marp.md`:
|
||||
@@ -209,46 +249,43 @@ deck markdown)
|
||||
- Usage: `python scripts/render_pptx.py [deck-name]` (defaults to
|
||||
`nova-autonomous-cloud-delivery`).
|
||||
|
||||
3. **`pyproject.toml`** (REQ-269):
|
||||
2. **`pyproject.toml`** (REQ-269):
|
||||
- Add to `[project.optional-dependencies]`:
|
||||
```toml
|
||||
slides = ["python-pptx>=0.6.23"]
|
||||
```
|
||||
|
||||
4. **`scripts/render_slides.sh`** (REQ-268, REQ-270):
|
||||
- After Step 2 (MARP render), add Step 3: inline images into HTML.
|
||||
3. **`scripts/render_slides.sh`** (REQ-270):
|
||||
- Add Step 4: python-pptx render → `*-python.pptx`.
|
||||
- Update Step 5 (stage): add `*-python.pptx`.
|
||||
- Final order: Step 1 mermaid → Step 2 MARP HTML+PPTX → Step 3
|
||||
inline images → Step 4 python-pptx → Step 5 stage.
|
||||
|
||||
5. **`scripts/attach_release_asset.py`** (REQ-270):
|
||||
4. **`scripts/attach_release_asset.py`** (REQ-270):
|
||||
- Extend to accept multiple asset paths (both `.pptx` +
|
||||
`-python.pptx`). Backward-compatible (single arg still works; or
|
||||
accept a list). MARP PPTX is the primary attachment (first).
|
||||
|
||||
6. **Verify** (must-have):
|
||||
5. **Verify** (must-have):
|
||||
- `bash scripts/render_slides.sh` produces 3 artifacts: `.html`
|
||||
(with inlined base64 images), `.pptx` (MARP), `-python.pptx`
|
||||
(structured).
|
||||
- Open the HTML from a different directory (no `assets/` folder) —
|
||||
images display.
|
||||
- Open `-python.pptx` — 16:9, title slide black with red bar, content
|
||||
slides with red titles + bullets + tables + images.
|
||||
- `grep -c 'src="assets/' nova-autonomous-cloud-delivery.html`
|
||||
returns 0 (all inlined).
|
||||
- `grep -c 'data:image' nova-autonomous-cloud-delivery.html`
|
||||
returns ≥2 (the deck's 2 images).
|
||||
- `-python.pptx` is a valid zip (PPTX signature).
|
||||
|
||||
---
|
||||
|
||||
## Phase P4 — trim-wordcount (tag v1.22.4)
|
||||
## Phase P4 — trim-wordcount + repo-wide "penetrate" purge (tag v1.22.5)
|
||||
|
||||
**Requirements:** REQ-271, REQ-272
|
||||
**Persona:** lead-developer (deck markdown + talking-points)
|
||||
**Persona:** lead-developer (deck markdown + talking-points + docs +
|
||||
.ciagent)
|
||||
**Branch:** `phase/04-trim-wordcount`
|
||||
**Depends on:** P1 (consolidated doc)
|
||||
**Parallel with:** P3 (zero file overlap)
|
||||
**Depends on:** P3b (stable render_slides.sh; trimmed deck is what P3b's
|
||||
parser already handles — P4 does not break P3b's parser because the
|
||||
parser handles the pre-trim structure and P4 trims prose, not
|
||||
structure)
|
||||
|
||||
### Tasks
|
||||
|
||||
@@ -273,31 +310,43 @@ deck markdown)
|
||||
- Benefit callouts (all slides): already restyled in P2; here just
|
||||
tighten each to one short sentence (preserve the spirit).
|
||||
|
||||
2. **Remove "penetrate"** (REQ-272):
|
||||
- Slide 5 line 73: "Nova never penetrates it. Integration is through
|
||||
one validated contract." → "Integration is through one validated
|
||||
contract." (The "PDLC is upstream" bullet already conveys scope;
|
||||
slide 4 Anti-Goals explicitly excludes the PDLC.)
|
||||
- `nova-autonomous-cloud-delivery-talking-points.md:40`: "Nova never
|
||||
penetrates it" → match slide 5's trimmed wording.
|
||||
- The plain `.md` is already deleted (P1), so its `:165` "penetrate"
|
||||
line is gone.
|
||||
2. **Remove "penetrate" — repo-wide purge** (REQ-272, G-001):
|
||||
- `docs/presentations/nova-autonomous-cloud-delivery-marp.md` slide 5:
|
||||
"Nova never penetrates it. Integration is through one validated
|
||||
contract." → "Integration is through one validated contract."
|
||||
- `docs/presentations/nova-autonomous-cloud-delivery-talking-points.md:40`:
|
||||
"Nova never penetrates it" → match slide 5's trimmed wording.
|
||||
- `docs/scope.md`: reword "Nova never penetrates the PDLC" →
|
||||
"Nova never reaches into the PDLC" (or restructure — the scope
|
||||
boundary is already established by "downstream of PDLC").
|
||||
- `docs/vision.md`: reword "It does not penetrate upstream product or
|
||||
software development lifecycles" → "It does not reach into upstream
|
||||
product or software development lifecycles".
|
||||
- `.ciagent/PROJECT.md`: reword the 3 "penetrate" occurrences in the
|
||||
Core Tenets #2 + Scope sections.
|
||||
- Note: `.ciagent/RESEARCH.md` + `.ciagent/PLAN.md` meta-references
|
||||
to "penetrate removal" are NOT purged (they describe the removal;
|
||||
purging them would erase the decision history).
|
||||
|
||||
3. **Verify** (must-have):
|
||||
- `grep -ri penetrat docs/presentations/` returns nothing (text
|
||||
files: .md, .html).
|
||||
- `grep -ri penetrat docs/ .ciagent/PROJECT.md .ciagent/CLARIFY.md`
|
||||
returns nothing (the term is gone from all audience-facing +
|
||||
project-spec docs; RESEARCH.md/PLAN.md/GRILL.md meta-references
|
||||
are exempt as decision-history).
|
||||
- Slide count unchanged (22).
|
||||
- `bash scripts/render_slides.sh` renders; no broken slides.
|
||||
- Word count of trimmed slides reduced ~20-30% (manual spot-check).
|
||||
|
||||
---
|
||||
|
||||
## Phase P5 — ci-tests-readme (tag v1.22.5)
|
||||
## Phase P5 — ci-tests-readme + review + audit + ship (Final Phase, tag v1.22.6)
|
||||
|
||||
**Requirements:** REQ-273, REQ-274, REQ-275
|
||||
**Persona:** backend-engineer (CI + tests) + lead-developer (README)
|
||||
**Branch:** `phase/05-ci-tests-readme`
|
||||
**Depends on:** P1, P2, P3, P4 (asserts the final state)
|
||||
**Requirements:** REQ-273, REQ-274, REQ-275 (+ review/audit/ship for all REQ-263..275)
|
||||
**Persona:** backend-engineer (CI + tests) + lead-developer (README + review coordination)
|
||||
**Branch:** `phase/05-ci-tests-readme-ship`
|
||||
**Depends on:** P1, P2, P3a, P3b, P4 (asserts the final state; merged
|
||||
P5+P6 per G-004 — NFR docs milestone doesn't warrant a dedicated
|
||||
review/ship phase)
|
||||
|
||||
### Tasks
|
||||
|
||||
@@ -325,8 +374,10 @@ deck markdown)
|
||||
- `test_source_md_*` → delete (plain `.md` is gone).
|
||||
- `test_render_slides_pins_cli_versions` → keep, extend to assert
|
||||
`python-pptx` is in `pyproject.toml`.
|
||||
- `test_no_penetrate_term` (new): assert
|
||||
`grep -ri penetrat docs/presentations/` returns nothing.
|
||||
- `test_no_penetrate_term` (new, G-001): assert
|
||||
`grep -ri penetrat docs/ .ciagent/PROJECT.md .ciagent/CLARIFY.md`
|
||||
returns nothing (RESEARCH.md/PLAN.md/GRILL.md meta-references
|
||||
exempt as decision-history).
|
||||
- `test_html_images_inlined_as_base64` (new): assert rendered
|
||||
HTML has zero `src="assets/` references and ≥1
|
||||
`data:image/png;base64` per image the deck uses.
|
||||
@@ -365,34 +416,17 @@ deck markdown)
|
||||
- Document the dual-PPTX output (MARP image-of-slide primary +
|
||||
python structured for comparison/editing).
|
||||
|
||||
4. **Verify** (must-have):
|
||||
- `pytest tests/test_slides_pipeline.py tests/test_pptx_generator.py`
|
||||
all pass.
|
||||
- CI workflow YAML is valid.
|
||||
- README reflects the new pipeline.
|
||||
|
||||
---
|
||||
|
||||
## Phase P6 — final-review-ship (Final Phase, tag v1.22.6)
|
||||
|
||||
**Requirements:** all (REQ-263..275)
|
||||
**Persona:** lead-developer (review coordination)
|
||||
**Branch:** `phase/06-final-review-ship`
|
||||
**Depends on:** P1–P5
|
||||
|
||||
### Tasks
|
||||
|
||||
1. **Multi-persona code review** (`ciagent-review`):
|
||||
4. **Multi-persona code review** (`ciagent-review`):
|
||||
- Review all changes in `milestone/v1.23-deck-cleanup-python-pptx`.
|
||||
- Auto-apply P0 fixes; flag P1+ for post-hoc review.
|
||||
- If P1+ found: fix in this phase.
|
||||
|
||||
2. **Audit** (`ciagent-audit`):
|
||||
5. **Audit** (`ciagent-audit`):
|
||||
- Reconstruction test: git log matches `.ciagent/` files.
|
||||
- `.ciagent/` file discipline + branch hygiene + commit discipline.
|
||||
|
||||
3. **Ship** (`ciagent-ship` — milestone ship):
|
||||
- Merge `phase/06` → `milestone/v1.23-deck-cleanup-python-pptx`.
|
||||
6. **Ship** (`ciagent-ship` — milestone ship):
|
||||
- Merge `phase/05` → `milestone/v1.23-deck-cleanup-python-pptx`.
|
||||
- Merge `milestone/v1.23-deck-cleanup-python-pptx` → `main`.
|
||||
- Tag `v1.22.6` (final patch = milestone release).
|
||||
- Create release with full milestone summary (all phases, all 13
|
||||
@@ -401,20 +435,28 @@ deck markdown)
|
||||
- Delete all milestone branches (local + remote). Tags preserve
|
||||
history.
|
||||
|
||||
4. **Complete the milestone**:
|
||||
7. **Complete the milestone**:
|
||||
- Update `REQUIREMENTS.md` — mark all v1.23 requirements complete.
|
||||
- Update `ROADMAP.md` — mark v1.23 complete.
|
||||
- Commit: `docs(milestone): complete v1.23 — Nova Deck Cleanup & Python PPTX`.
|
||||
|
||||
8. **Verify** (must-have):
|
||||
- `pytest tests/test_slides_pipeline.py tests/test_pptx_generator.py`
|
||||
all pass.
|
||||
- CI workflow YAML is valid.
|
||||
- README reflects the new pipeline.
|
||||
|
||||
---
|
||||
|
||||
## Versioning
|
||||
|
||||
- NFR milestone → progressive patches on v1.22.x line.
|
||||
- `v1.22.0` (P0) → `v1.22.1..v1.22.5` (P1–P5) → `v1.22.6` (P6 final =
|
||||
milestone release). No separate minor tag.
|
||||
- `v1.22.0` (P0) → `v1.22.1` (P1) → `v1.22.2` (P2) → `v1.22.3` (P3a) →
|
||||
`v1.22.4` (P3b) → `v1.22.5` (P4) → `v1.22.6` (P5 final = milestone
|
||||
release). No separate minor tag. 6 phases total (was 7; P5+P6 merged
|
||||
per G-004, P3 split into P3a+P3b per G-003).
|
||||
|
||||
## Risk Mitigations (from RESEARCH)
|
||||
## Risk Mitigations (from RESEARCH + GRILL)
|
||||
|
||||
1. **Default theme padding** — explicitly set
|
||||
`section { padding: 48px 56px 40px }` in the inline `style:` block
|
||||
@@ -428,4 +470,9 @@ deck markdown)
|
||||
slides but they persist in the source `-marp.md` (acceptable; they're
|
||||
for authors, not the audience).
|
||||
5. **`test_html_embeds_theme`** — update to assert literal `#D6002A`
|
||||
(not `--sp-red`).
|
||||
(not `--sp-red`).
|
||||
6. **P3b parser overflow** (G-003) — isolated in its own phase so a
|
||||
parser setback doesn't block inline-images (P3a) or trim (P4).
|
||||
7. **"penetrate" purge scope** (G-001) — repo-wide, not just
|
||||
`docs/presentations/`; RESEARCH.md/PLAN.md/GRILL.md exempt as
|
||||
decision-history.
|
||||
@@ -2020,9 +2020,9 @@ assert 20 main + 1 appendix.
|
||||
| REQ-265 | P2 | pending |
|
||||
| REQ-266 | P2 | pending |
|
||||
| REQ-267 | P2 | pending |
|
||||
| REQ-268 | P3 | pending |
|
||||
| REQ-269 | P3 | pending |
|
||||
| REQ-270 | P3 | pending |
|
||||
| REQ-268 | P3a | pending |
|
||||
| REQ-269 | P3b | pending |
|
||||
| REQ-270 | P3b | pending |
|
||||
| REQ-271 | P4 | pending |
|
||||
| REQ-272 | P4 | pending |
|
||||
| REQ-273 | P5 | pending |
|
||||
|
||||
+18
-14
@@ -2100,7 +2100,10 @@ release). **DONE.**
|
||||
|
||||
### Phase P0 — pre-execution (active)
|
||||
- SPECIFY → CLARIFY → RESEARCH → PLAN → GRILL. Establishes v1.23
|
||||
requirements (REQ-263..275). Tag `v1.22.0`.
|
||||
requirements (REQ-263..275). Tag `v1.22.0`. Grill PROCEED-WITH-
|
||||
REVISIONS (0.78): 4 binding revisions applied (G-001 repo-wide
|
||||
"penetrate" purge; G-002 P3→P4 serialized; G-003 P3 split P3a+P3b;
|
||||
G-004 P5+P6 merged).
|
||||
|
||||
### Phase P1 — consolidate-docs (planned, tag v1.22.1)
|
||||
- REQ-263: fold speaker notes + talking points into `*-marp.md` as Marp
|
||||
@@ -2118,24 +2121,28 @@ release). **DONE.**
|
||||
- REQ-267: restyle benefit callouts — remove `**Benefit:**` prefix; use
|
||||
`.benefit` class (red top-rule + black italic; white on title slides).
|
||||
|
||||
### Phase P3 — inline-images + python-pptx-generator (planned, tag v1.22.3)
|
||||
### Phase P3a — inline-images (planned, tag v1.22.3)
|
||||
- REQ-268: new `scripts/inline_images.py` — base64-embeds all images in
|
||||
the rendered HTML for redistribution. Invoked after the MARP HTML
|
||||
render.
|
||||
render. Low-risk, mechanical (G-003 isolation).
|
||||
|
||||
### Phase P3b — python-pptx-generator (planned, tag v1.22.4)
|
||||
- REQ-269: new `scripts/render_pptx.py` — structured, editable, S&P-themed
|
||||
PPTX via `python-pptx`. 16:9; native tables; embedded PNGs; benefit
|
||||
callouts. Add `python-pptx` to `pyproject.toml`.
|
||||
callouts. Add `python-pptx` to `pyproject.toml`. High-risk, isolated
|
||||
(G-003).
|
||||
- REQ-270: `render_slides.sh` produces both PPTX outputs; CI installs
|
||||
`python-pptx`; both attached to release.
|
||||
|
||||
### Phase P4 — trim-wordcount (planned, tag v1.22.4)
|
||||
### Phase P4 — trim-wordcount + repo-wide "penetrate" purge (planned, tag v1.22.5)
|
||||
- REQ-271: targeted ~20-30% word-count trim on verbose slides (1, 5, 7,
|
||||
8, 13, 14, 20, appendix). Tables untouched. Spirit preserved.
|
||||
- REQ-272: remove "penetrate" (and derivatives) from all presentation
|
||||
files. Slide 5's phrase removed with no replacement (slide 4
|
||||
already excludes the PDLC).
|
||||
- REQ-272: remove "penetrate" (and derivatives) repo-wide (G-001) —
|
||||
`docs/` + `.ciagent/PROJECT.md`/`CLARIFY.md`; RESEARCH.md/PLAN.md/
|
||||
GRILL.md exempt as decision-history. Slide 5's phrase removed with no
|
||||
replacement (slide 4 already excludes the PDLC).
|
||||
|
||||
### Phase P5 — ci-tests-readme (planned, tag v1.22.5)
|
||||
### Phase P5 — ci-tests-readme + review + audit + ship (Final Phase, tag v1.22.6)
|
||||
- REQ-273: CI workflows install `python-pptx`, run `render_slides.sh`,
|
||||
commit HTML + both PPTX + inlined images.
|
||||
- REQ-274: update `test_slides_pipeline.py` (consolidated doc, inline
|
||||
@@ -2143,10 +2150,7 @@ release). **DONE.**
|
||||
"penetrate" absence). New `test_pptx_generator.py`.
|
||||
- REQ-275: rewrite `README.md` for the single-document + dual-PPTX +
|
||||
image-inlining pipeline.
|
||||
|
||||
### Phase P6 — final-review-ship (Final Phase, planned, tag v1.22.6)
|
||||
- Multi-persona code review across all phases.
|
||||
- Audit: git log matches `.ciagent/` discipline.
|
||||
- Ship: tag `v1.22.6` (final patch = milestone release). Merge
|
||||
- Review + audit + milestone ship (merged P5+P6 per G-004 — NFR docs
|
||||
milestone). Tag `v1.22.6` (final patch = milestone release). Merge
|
||||
`milestone/v1.23-deck-cleanup-python-pptx` → `main`.
|
||||
- **Requirements:** REQ-263..275 (13 requirements).
|
||||
|
||||
Reference in New Issue
Block a user