Skip to content

feat(creative): deck_builder v0.2.0 baseline — placeholders, quality linting, archetypes, and new layouts (#336) - #337

Open
tusharjamunkar wants to merge 2 commits into
ARPAHLS:mainfrom
tusharjamunkar:feat/deck-builder-336
Open

feat(creative): deck_builder v0.2.0 baseline — placeholders, quality linting, archetypes, and new layouts (#336)#337
tusharjamunkar wants to merge 2 commits into
ARPAHLS:mainfrom
tusharjamunkar:feat/deck-builder-336

Conversation

@tusharjamunkar

Copy link
Copy Markdown
Contributor

Summary

Closes #336

Implements the v0.2.0 baseline upgrade for creative/deck_builder, advancing it from a proof-of-concept slide assembler to an enterprise-grade presentation platform layer for autonomous agents as outlined in #336.

Following maintainer guidance (@rosspeili), this baseline PR establishes the core architectural foundations, layout extensions, heuristic linting gates, archetype outlines, and skill chaining pipelines in an incremental, reviewable step.


Key Capabilities Added

  1. Procedural Neutral Image Placeholders & Fit Policies (placeholders.py):

    • 100% offline Pillow-based placeholder generator supporting hero, logo, icon, chart_backdrop, and headshot with subtle geometric motifs and typography badges.
    • Preserves offline-first constitution: zero remote network calls or image generation APIs inside the skill.
    • Pillow-backed EXIF transposition and color-space normalization (CMYK, Grayscale, RGBA to RGB).
    • Configurable image fit policies: contain (aspect-ratio preserved with padding), cover / crop_center (symmetrically center-cropped), stretch (direct bounding box scaling), and native.
  2. 3 New Slide Layout Types (timeline, metrics, comparison):

    • timeline: Horizontal milestone roadmaps with chronological connectors, dates, titles, descriptions, and color-coded status pills (completed, in_progress, planned).
    • metrics: KPI big-number cards (up to 4 per slide) with primary numeric callouts, metric labels, trend direction indicators (up, down, neutral), and delta badges.
    • comparison: Structured two-column comparative matrix supporting card dictionaries (title + items) or bullet arrays for contrasting features, tradeoffs, or before/after paradigms.
  3. Presentation Quality Gates (lint_deck):

    • Deterministic heuristic deck scoring (0–100) evaluating presentation readability, bullet density, and layout rhythm.
    • Rule checks implemented:
      • WALL_OF_TEXT: Bullet character caps (>140 chars) and dense text blocks.
      • DECK_TOO_LONG: Decks exceeding 25–30 slides.
      • MISSING_ALT: Images lacking accessibility alt text (strict_a11y: true).
      • ORPHAN_BULLET: Slides with exactly one solitary bullet point.
      • EMPTY_TITLE: Missing or whitespace-only slide titles.
      • CHART_NO_TITLE: Charts missing series names or categories.
      • METRIC_WITHOUT_LABEL: Metric entries lacking descriptive context.
      • LOW_SLIDE_COUNT: Incomplete decks (<3 slides).
      • MONOTONOUS_LAYOUT: 3+ consecutive slides repeating the exact same layout.
    • Supports min_score enforcement for CI/agent quality gates.
  4. Deterministic Archetype Outlines (suggest_outline):

    • Offline outline and skeleton generator for 5 standard presentation archetypes:
      • investor_pitch (11 slides)
      • technical_brief (7 slides)
      • quarterly_review (8 slides)
      • product_launch (8 slides)
      • training_workshop (8 slides)
    • Intelligent negative constraint filtering (e.g. constraints=["no pricing", "no financial"]) automatically removes sensitive sections while keeping narrative coherence.
  5. Enterprise Governance & Brand Kit Support:

    • Document classification ribbons (CONFIDENTIAL, INTERNAL, PUBLIC, RESTRICTED) stamped on slides.
    • Universal legal_footer disclaimer banner.
    • Optional brand_kit specification (company_name, logo_path, primary_color, secondary_color, accent_color, font_family).
  6. Skill Chaining Pipeline Demo & Tooling:

    • Authored examples/deck_builder_chain_demo.py showcasing composability with creative/bg_remover to generate a 7-slide enterprise presentation with clean transparent brand assets.
    • Added deck_build_pipeline named chain to .skillware.yaml.example.
    • Indexed demo in examples/README.md and added to tests/test_examples_smoke.py.

Verification & Test Coverage

  • Unit Tests: 23/23 tests passed in skills/creative/deck_builder/test_skill.py.
  • Integration Tests: Passed in tests/skills/creative/test_deck_builder.py.
  • Smoke Tests: 14/14 examples passed in tests/test_examples_smoke.py.
  • Core Repositories: 92/92 tests passed across registry, docs, manifests, and UI schema suites.
  • Linters & Formatters: black --check clean, flake8 clean (0 errors), scripts/sync_extras.py --check OK.
  • Offline Invariant: Offline constitution validated (test_constitution_offline_no_remote_apis verifies no banned imports in any skill module).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Skill Upgrade]: creative/deck_builder — v0.2 smart themes, images, and PPTX rework

1 participant