mooncast

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

aigc
production
moonsuite-pack
moon add vectie/mooncast@0.2.3
Download zip
Author
Version
0.2.3
License
Apache-2.0
Last updated
14 days ago
Downloads
4

Dependencies

README

#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