Skip to content

Add a synthetic comic fixture and reusable document-type fixture packs #413

Description

@szmyty

Outcome

Create an original, redistribution-safe mock comic book as a reusable Renderflow test fixture, and establish a small convention for adding fixture packs for specific document types later (for example a comic, magazine, article, presentation, or book).

This captures Alan's idea for later implementation. It does not authorize implementation now or expand the current comics consumer checkpoint.

Placement and existing work

Scope

1. A small synthetic comic

Create a coherent fictional mini comic with original text, simple reproducible artwork, multiple pages/panels, captions/dialogue, covers, reading order, and accessibility text. Use deterministic source recipes and generators where practical. If any artwork is generated manually or with AI, record provenance, review, redistribution permission, and immutable digests; ordinary test runs must not call an image-generation service.

Keep sources small and inspectable, use appropriately licensed pinned fonts, and document the rights/provenance of every bundled asset. Do not copy private Ego Hygiene comic artwork, characters, canonical text, approval records, or personal data.

Provide a minimal PR-sized case and a parameterized larger publication case. The larger recipe should be able to exercise a 44-interior-page plus separate two-page cover-PDF model as a synthetic configuration, while reporting unsupported exporter or provider mappings explicitly. Do not hard-code one consumer's page plan into Renderflow core.

2. Reusable document-type fixture packs

Extend the existing fixture manifest/schema rather than inventing a competing test framework. A pack should identify:

  • stable pack/case IDs and document type;
  • source recipe, seed/parameters, generator and tool pins;
  • asset provenance/licenses and source digests;
  • selected profile/template and their identities or hashes;
  • required and optional capabilities;
  • expected artifact roles, schemas, media types, page geometry/count/order, and semantic relationships;
  • validator identities/outcomes and expected typed diagnostics;
  • resource limits and PR/nightly/release tier.

Document how a contributor adds another document type using one pack, generator/source recipe, and expected-outcome manifest. Implement the comic pack first; other document types are follow-up cases, not a requirement to build every type in this issue.

3. Positive and negative publication coverage

Use observed public CLI/API capabilities to exercise configured PDF/web/EPUB/publication branches and provider-specific preflight where actually supported.

Keep artifact generation, format validation, and provider-conformance checking distinct. A Lulu checker is not a Lulu exporter, and a synthetic passing check is not provider acceptance or approval to publish.

Include bounded, named cases such as:

  • complete valid source and supported outputs;
  • missing/corrupt page asset, wrong page order/count or geometry;
  • missing font/resource, inaccessible or incomplete semantic metadata;
  • malformed source/package, digest mismatch, stale profile/template;
  • unavailable or incompatible provider;
  • successful provider exit with missing/invalid artifacts;
  • cancellation/cleanup and deterministic rerun where supported.

Assert artifact contents/structure and validation evidence, source immutability, and absence of network/upload/publication side effects. Unsupported capabilities must produce explicit expected outcomes; a skipped real-provider integration must not be reported as an executed success.

Acceptance criteria

  • The original comic source is small, reviewable, legally reusable, and independent of private consumer content.
  • The initial comic fixture is reproducible under pinned dependencies; intentional variability is documented and bounded.
  • Minimal and larger publication cases reuse the same parameterized recipe.
  • A versioned pack convention extends the existing corpus and documents how to add another document type.
  • Expected artifacts and failures are machine-readable and tied to source/profile/tool/template identities.
  • Positive cases inspect real outputs; negative cases verify typed diagnostics and cleanup rather than exit code alone.
  • EPUB and print/provider boundaries are demonstrated only where supported, with honest residual gaps.
  • CI enforces time/size/memory budgets and distinguishes PR, broader, and provider-dependent tiers.
  • Golden changes require explicit review; tests never silently rewrite baselines.
  • No source mutation, remote AI, provider upload, paid service, publication, or inherited human approval occurs during ordinary tests.

Scheduling and non-goals

Deferred under #412; select a bounded implementation checkpoint after reviewing current contracts. Keep the first comic pack and its extension convention reviewable in one PR, and split further format coverage into later issues if needed.

No Flow implementation, consumer release work, blanket format-support claims, new fixture framework, or large binary collection belongs in this issue.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions