mooncast

    Systematic rights-aware long-form AIGC production pack for MoonSuite

    aigc
    production
    moonsuite-pack
    Download zip
    Author
    Version
    0.2.2
    License
    Apache-2.0
    Last updated
    3 months ago
    Downloads
    42

    #MoonCast

    Domain pack and studio · deterministic pipeline alpha. Read the product contract for the cut-editor boundary, provider truth, commercial acceptance and release gates.

    Paid productions now enter through a pack-local commercial intake: qualified lead, immutable 3–8 minute quote, named commercial/production/client decisions, finite studio capacity, margin and founder-hour forecast, then exact quote-to-draft-project conversion. See Contract, quote, capacity, and project intake. No CRM, email, payment, calendar, creative, delivery, or publication authority is inferred by this flow.

    Studio also accepts a versioned MoonWiki needs/creative-strategy export. Exact source identities are validated, approved by a named human, and bound to the project brief, bible, and script without synthetic intent references. See MoonWiki needs and creative-strategy intake.

    Mooncast is an isolated MoonSuite domain pack for rights-aware AIGC production. It turns a creative brief into generated assets, provenance, review decisions, delivery packages, and optional reviewed publication.

    The repository itself is an installable pack source:

    moonbook pack inspect /path/to/mooncast moonbook pack install /path/to/mooncast /path/to/workspace host-profile.json

    Mooncast owns production policy and schemas. MoonLib, MoonBook, MoonClaw, MoonDesk, and Moonstat only consume generic pack projections.

    See Responsibility and testability for the executable ownership boundary and layered verification model.

    Version 0.2 adds a systematic long-form production path alongside the original 12-second local preview: durable projects, episode/scene/shot plans, G0–G7 evidence gates, rights and bible locks, script/storyboard/animatic approval, model routing, budget enforcement, immutable shot attempts, QC/editorial/client review, 3–8 minute master composition, delivery packages, analytics, and economics. The checked-in deterministic provider makes a real three-minute H.264/AAC fixture with an embedded subtitle stream, visible AI labels, and full shot-to-master SHA-256 lineage in seconds.

    #Build and run the native production studio

    npm --prefix ui/rabbita-mooncast install --no-audit --no-fund npm --prefix ui/rabbita-mooncast run build MOONCAST_RABBITA_DIST=ui/rabbita-mooncast/dist \ MOONCAST_DATA_ROOT=var/native \ MOONCAST_PORT=4302 \ moon run cmd/studio

    Open http://127.0.0.1:4302/apps/mooncast/studio. The same native host serves the editor, private client-review routes, typed APIs, range-capable media, and the built Rabbita assets. Deployment must provide approved media tools and provider configuration explicitly; the application does not download a runtime or load a secondary application host.

    Mooncast exposes exactly three product surfaces: Studio, Editor, and Client Review. It does not ship or mount a Bookkeeper application. Final-deliverable and outcome evidence is handed to MoonFlow for MoonBook's canonical Bookkeeper and existing MoonBook Rabbita UI. The existing handoff outbox materializes an inert, ordered Bookkeeper ingress bundle for MoonFlow; Mooncast retains only outbound evidence, inert transfer values, and external receipt references.

    For UI development, run the native host on port 8000 and the Rabbita Vite server separately:

    MOONCAST_RABBITA_DIST=ui/rabbita-mooncast/dist MOONCAST_PORT=8000 moon run cmd/studio npm --prefix ui/rabbita-mooncast run dev

    The studio accepts a rights-attested creative brief and produces a real local H.264/AAC MP4. Each response includes its immutable video URL, SHA-256, provider, model, prompt, bounded cost, rights, safety, explicit/implicit labels, and human-review state. Approval is append-only and only makes an asset eligible for a separate publishing adapter; this service does not publish.

    The lower Systematic long-form production panel drives the complete v2 project lifecycle. It shows the G0–G7 rail, episode/scene/shot tree, rights, provider and asset provenance, master evidence, budget, and economics after every operation.

    See the endpoint contract for request and response details.

    #Validate

    moon run cmd/pack_boundary moon run cmd/manifest moon check --target native --deny-warn moon test --target native --deny-warn npm --prefix ui/rabbita-mooncast run build

    cmd/pack_boundary is the fail-closed MoonBit-native boundary scanner. It verifies strict manifest structure, compiled-manifest parity, pack-owned references, symlink containment, and forbidden cross-product imports. The runtime, validation, installation, and CI paths are MoonBit/Rabbita-only. The completed source cutover and promotion requirements are recorded under migrations/.

    CampaignStage

    pub(all) enum CampaignStage {
    Brief
    RightsCleared
    Generated
    SafetyReviewed
    HumanApproved
    Packaged
    Published
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    DeliveryGate

    pub(all) struct DeliveryGate {
    rights_cleared : Bool
    safety_passed : Bool
    human_approved : Bool
    provenance_complete : Bool
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    GateReceipt

    pub(all) struct GateReceipt {
    gate : ProductionGate
    actor : String
    evidence_digest : String
    decided_at : String
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    ProductionGate

    pub(all) enum ProductionGate {
    G0Brief
    G1RightsBible
    G2Creative
    G3ProductionAuthorization
    G4Assets
    G5Master
    G6ClientAcceptance
    G7Delivery
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    Evidence gates for the systematic long-form production lifecycle.

    ProductionProjectSummary

    pub(all) struct ProductionProjectSummary {
    project_id : String
    stage : ProductionStage
    target_duration_seconds : Int
    episode_count : Int
    scene_count : Int
    shot_count : Int
    budget_cny : Double
    spent_cny : Double
    gate_receipts : Array[GateReceipt]
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    ProductionReadiness

    pub(all) struct ProductionReadiness {
    brief_complete : Bool
    rights_cleared : Bool
    bible_locked : Bool
    script_approved : Bool
    storyboard_approved : Bool
    animatic_approved : Bool
    route_authorized : Bool
    budget_authorized : Bool
    shots_complete : Bool
    provenance_complete : Bool
    qc_approved : Bool
    editorial_approved : Bool
    client_accepted : Bool
    delivery_planned : Bool
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    ProductionStage

    pub(all) enum ProductionStage {
    Draft
    BriefReady
    RightsReady
    CreativeApproved
    ProductionAuthorized
    AssetsReady
    MasterApproved
    ClientAccepted
    DeliveryAuthorized
    Delivered
    } derive(Eq, ToJson,
    Debug
    ,
    FromJson
    )

    delivery_ready

    fn delivery_ready(gate : DeliveryGate) -> Bool

    next_production_gate

    fn next_production_gate(receipts : Array[GateReceipt]) -> ProductionGate?

    production_gate_ready

    fn production_gate_ready(gate : ProductionGate, readiness : ProductionReadiness) -> Bool

    production_gate_sequence

    fn production_gate_sequence() -> Array[ProductionGate]

    publication_ready

    fn publication_ready(stage : CampaignStage, gate : DeliveryGate) -> Bool

    systematic_delivery_ready

    fn systematic_delivery_ready(summary : ProductionProjectSummary, readiness : ProductionReadiness) -> Bool