You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Slideshow foundation: plan-type behavior, deck split, per-slide rendering
Phase 1 of markdown slideshows (design: CoPlan plan 01a01696-aad6, rev 4).
A deck is a rendering convention over the plan's single markdown blob —
nothing new is persisted, so versioning, diffs, and comment anchors keep
working unchanged.
- PlanType gains a behavior column (document/slideshow); Plan#slideshow?
delegates to it, so retyping a plan converts it. Ships a Slideshow
default type (installable via coplan:plan_types:install_defaults) whose
template teaches the conventions, plus a seeded showcase deck.
- Slideshows::Split turns markdown into slides at top-level `---` breaks
(AST-driven: fences, blockquotes, setext, `***` never split), extracts
<!-- notes: --> speaker notes, and gathers footnote/link-reference
definitions as positioned blocks so slides can render in isolation.
Candidate definitions are validated by a parser round-trip, so prose
lookalikes are never hoisted onto other slides.
- render_slideshow renders each slide through the standard document
pipeline (same sanitization, mentions, checkboxes) inside
section.deck-slide wrappers. Definitions are prepended per slide
(skipping footnote keys the slide defines — commonmarker swallows
fragments containing duplicated footnote definitions), footnote marks
are renumbered to match the document-wide References back matter, and
checkbox data-line stays document-absolute via render_markdown's new
line_offset.
Verified with two adversarial review workflows; every confirmed finding
is pinned by a regression spec.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Deck ids and section links now match document mode
Codex review of #189 flagged that per-slide rendering restarts both id
generators — comrak heading anchors (intro, intro-1, …) and numbered
section ids (section-1, section-1-2 via unique_dom_id) — so links
written against document mode went dead in the deck.
The document-mode render the deck already uses for footnote ordinals is
now the ground truth for everything numbered per document:
- align_heading_ids copies each body anchor's id+href and each
heading's id positionally from the document render, gated on equal
counts and pairwise content fingerprints (text, image sources, link
destinations, checkbox states) so author HTML left open across a
slide break — which parses differently per slide than in the
document (foster-parenting, swallowed siblings) — can only skip the
pass, never misassign an id.
- mirror_section_link_enhancement makes section preview affordances
match document mode in both directions: cross-slide links gain them,
stale per-slide ones (target id lost to an earlier claimant) lose
them.
- drop_misleading_ids backstops the skips: any deck id whose
document-mode owner shows different content is dropped rather than
left pointing at the wrong thing (anchors validate by the heading
they mark).
- renumber_deck_footnotes no longer counts author elements claiming to
be a heading anchor and a footnote ref at once, so impostors can't
shift real references off their back-matter backrefs.
Also pins the other Codex finding as specs: thematic breaks nested in
list items never split (doc.each only walks top-level nodes).
Verified with three adversarial review workflow rounds (9 agents); all
12 confirmed breaks fixed and spec-pinned, and the final round's
33-document mechanical parity sweep found deck output id-for-id
identical to document mode on legitimate content.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* Rename the deck plan type to Presentation and wire up the deck view
The user-facing type is "Presentation" (behavior enum, default template,
seeds); the internal mechanism keeps its slideshow naming. Plan show now
branches on presentation? with behavior in the fragment-cache key, the
slideshows helper is registered on the engine controller, and a
provisional deck stylesheet renders slides as 16:9 cards pending the
real design system.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
[^p95-baseline]: [Q2 search latency review](https://observability.example.com/d/search-latency) — trailing 30 days: p95 840 ms, p50 118 ms, with fan-out retries accounting for 62% of tail samples.
296
301
[^redis-eviction]: [Redis key eviction](https://redis.io/docs/latest/develop/reference/eviction/) — `allkeys-lru` approximates LRU across the whole keyspace, which fits a cache-only tier.
297
302
MARKDOWN
303
+
# Showcases the slideshow conventions end-to-end: `---` slide breaks,
304
+
# speaker-note comments, a visible `***` rule (not a break), checkboxes
305
+
# on a later slide (absolute line numbers), and footnote/link-reference
306
+
# definitions that live on a different slide than their references.
307
+
slideshow_deck: <<~'MARKDOWN',
308
+
Q3 launch readout, presented at the product review. A `---` on its own line starts a new slide.
309
+
310
+
<!-- notes: Open with the one-number summary — adoption doubled. -->
311
+
312
+
---
313
+
314
+
## What shipped
315
+
316
+
- Shared workspaces on web, iOS, and Android
317
+
- Folder-level permissions with inherited defaults
318
+
- Real-time presence in every document[^presence]
319
+
320
+
***
321
+
322
+
Rules like the one above stay visible — only `---` starts a new slide.
323
+
324
+
---
325
+
326
+
## Rollout checklist
327
+
328
+
- [x] Beta cohort (12 teams)
329
+
- [x] Pricing page update
330
+
- [ ] Follow-up survey to beta admins
331
+
332
+
<!-- notes: The survey ships Friday; results feed the next readout. -->
333
+
334
+
---
335
+
336
+
## How it went
337
+
338
+
```text
339
+
week 1 ████████ 41%
340
+
week 2 ██████████████ 72%
341
+
week 4 ████████████████ 89%
342
+
```
343
+
344
+
Weekly active teams, per the [launch dashboard][dash].
345
+
346
+
---
347
+
348
+
## Ask
349
+
350
+
Approve headcount for the sync-conflicts workstream.
0 commit comments