← Back to Articles & Artefacts
artefactswest

Miadi Factory — The Author's Desk, clickable research-to-fiction prototype (v3 / draft: v1 plus the packages that exist)

IAIP Research
ep76-proposal-scoring-with-jev-261010-261010-0d54154e-d8cd-4c8e-8eb5-2368d3a1032b

Miadi Factory — The Author's Desk, clickable research-to-fiction prototype (v3 / draft: v1 plus the packages that exist)#

Mission and constraints#

Build an attractive, navigable, genuinely interactive web prototype inspired by the attached cinematic splash-screen image The Author's Desk — Where Research Becomes Story. The image describes THREE realms: BACKSTAGE (real research); THE AUTHOR'S DESK (human writes); ONSTAGE (fiction). Preserve the image's warm desk / notes / luminous paths / story-portal atmosphere, but do NOT turn text baked into an image into fake controls. Recreate its six notes and area labels as accessible HTML buttons/components or position semantic keyboard-operable hotspots over the image with responsive fallbacks. Every prominent hotspot must open a useful view; no dead buttons.

Human authorship rule: “I don't want the robot to write for me. What I want is the robot repeating me, which is different.” The human writes. Agents may retrieve, arrange, inspect, echo EXACT human language with attribution, offer questions/options, and perform supporting work; they must not silently replace a human sentence with generated fiction. Clearly distinguish author-authored text, exact quotations, agent paraphrases, and suggested prose. Never auto-publish, auto-send, or auto-run agents.

Stack and scope#

Prefer the established Episode 120 proof-of-concept approach: Next.js App Router, React, TypeScript, Tailwind, shadcn/ui, Zod; server-side integration adapters, accessible responsive navigation and graceful demo fallbacks. Use only packages confirmed available in the target environment. The precise installed packages, API contracts, repository paths, and runtime behavior of Chronicle/Medicine Wheel, Story Studio Narrative Context Protocol (NCP), Wampum Narrative Bridge, and agents are UNKNOWN until the implementing agent inspects the actual code or the human supplies it. DO NOT fabricate imports, SDKs, package names, API schemas, deployed URLs or indigenous cultural claims. Scaffold explicit typed adapters and mock data instead of pretending unknown libraries are connected. Do not let discovery of unknown dependencies block a working front end.

What already exists (read from jgwill/Miadi on 2026-10-10; all on npm at these versions)#

Install these and use them as named; everything not listed here stays UNKNOWN as stated above.

  • Backstage: @miadi/episodic-memory-schema 0.14.1 (the shapes an episode holds: screenwalk records, reviews review:<uuid>, foundations, attention items; pure types, no fs), @miadi/episode-vessel 0.4.2 (episode folder reads and role capabilities, server only), @miadi/inquiry-weave 0.16.6 (the chronicle catalog and the weave between artefacts, GitHub issues and episodes), @miadi/reference-ui 0.1.2 (chips and cards for miadi-chronicle:, miadi-review:, miadi-foundation:, miadi-ceremony:), @miadi/transcription 0.3.4 (reads a recording's transcriptions by form), @miadi/hooks-interpreter 0.3.2 (what an agent session is doing, from its trace), @miadi/annotate-core and @miadi/annotate-ui 0.2.0 (signed marks on a document, by block or exact words), @miadi/attention-core 0.1.1 and @miadi/attention-ui 0.3.1 (the questions waiting on a person).
  • Desk and Onstage: @miadi/ncp-story-studio 0.8.1 (the NCP types, validator, story lattice, project store and agent link protocol, as subpaths /schema, /graph, /store, /agents), @miadi/wampum-narrative-engine 0.1.1 (the belt as a narrative model), @miadi/ncp-wampum-bridge 0.1.1 (the crossing between the two, with a report of what did not carry across), @miadi/voice-client 0.2.4 (play the author's own words back through the Factory's voice layer), passages 0.3.11 (a Twine book from an episode).
  • Doors: a public review answers as JSON at https://miadi-review-service.vercel.app/review/<uuid>/json (no token); the earlier Episode 120 prototype is live at https://miadi-factory-interface-analysis.vercel.app/ (jgwill/Miadi#757); traces and prompts live in the Langfuse Ceremony project, read server side with CEREMONY_LANGFUSE_PUBLIC_KEY, CEREMONY_LANGFUSE_SECRET_KEY, CEREMONY_LANGFUSE_BASE_URL; the desk's own tracing, when the author opts in, goes to the story project through STORY_LANGFUSE_*.

Landing / navigation#

Use the attached image as design reference and optional hero art (ask for it if inaccessible). Three dominant clickable realms with paths to actual routes: Backstage /backstage; The Author's Desk /desk; Onstage /onstage. Provide consistent home/navigation controls, breadcrumb/back, keyboard accessibility, mobile card alternative, readable labels, focus rings and contrast. Show a small status key: Connected / User-reported existing / Demo / Proposed / Needs integration; never label a demo connected. Each major tile must reveal its current state, useful actions and an optional ‘what would connect here’ explanation.

BACKSTAGE — interactive research services#

  1. /backstage/screenwalks: list/search screenwalks and their associated reviews, including links to Episode 120 review pages and the new Author's Desk review. Show title, episode, source, review link, continuation questions, status and a button ‘Bring this as inspiration to my desk’. Preserve canonical review IDs/links below. Include a clearly separate ‘Earlier Episode 120 prototype’ navigation card; the actual prototype URL is UNKNOWN, so use optional configured NEXT_PUBLIC_EP120_PROTOTYPE_URL only when a verified URL is supplied. Otherwise open the real Episode 120 review, with an honest ‘prototype URL not configured’ note.
  2. /backstage/plot-threads: a useful blank-canvas exploration without depending on unknown libraries. Create a pannable/zoomable canvas or scrollable board with selectable plot-thread cards, simple thread metadata (name, concern, keeper, episodes, scenes, linked execution branches, evidence/proposal state), and a switch to a two-timeline bridge concept: upper row of squares = timeline A; lower row = timeline B; connecting squares between = cross-timeline events/relationships. Seed with clearly labeled illustrative examples inspired by Episode 120 (Asterion / Marks / Jev); never assert those illustrative placements as canonical plot facts. User calls an existing prototype Wampum Narrative Bridge, related to Story Studio NCP. Treat it as the user's named prototype, not an established Indigenous methodology or a permission to imitate culturally significant designs; request its actual code, attribution/context and design guidance before integrating. Keep bridge visual conventions editable. No invented SDK or URL.
  3. /backstage/agents: compact but useful read-only roster, one agent detail view, and a branch/trunk board showing agent, investigation, state, evidence, open decision, and next question. Illustrative Asterion / Marks / Jev example data from Episode 120 must be visibly DEMO; distinguish a human-approved assignment from a proposed task. No execution dispatch, commands, credential exposure, or fake real-time progress.
  4. /backstage/reviews: working list/detail UX. Create a SERVER-ONLY read-only review-service adapter. Configuration: MIADI_REVIEW_API_BASE_URL and MIADI_REVIEW_API_TOKEN in server environment, never NEXT_PUBLIC_*. The exact API endpoints, authentication scheme and response shapes are UNKNOWN: do not guess live calls as fact; define interface listReviews, getReview, getVersions, configurable transport, validation and errors. Show ‘integration pending’ and seeded public links if contract missing or token unavailable. Never send token to browser or logs; do not prompt user to paste token into a client form. When actual API docs are supplied, enable true listing/version history.
  5. /backstage/evidence: minimal visual evidence/traces page (source cards, provenance, timestamp where known, claim classification Verified/Reported/Interpretation/Proposed, linked reviews, issues and observations); DEMO seeded links to existing Episode 120 and Author's Desk Langfuse traces and GitHub issue. User has local evidence/trace code being developed separately; do not recreate it, claim to have integrated it, or fetch private traces from browser. Define a swap-in server read-only adapter and an interface contract for the future local integration.
  6. /backstage/chronicle: a navigable overview of Chronicle cycles / Medicine Wheel concepts with entry cards and relationship diagram. User reports existing libraries; their exact package names, source paths and API contracts remain unverified. Include a conspicuous integration slot / adapter with dummy records and an empty-state explaining what's needed. Do not culturally flatten or treat Medicine Wheel as a generic four-quadrant UI with claims of cultural authority.

THE AUTHOR'S DESK — actual human writing functionality#

Create six clearly distinct writing tools, all reachable by clicking hero notes and /desk: My Take, A Question, A Spark, A Character, A Scene, A Story Hook. Each has a spacious editor, optional source links (screenwalk/review/plot thread/agent branch), useful form-specific prompts, tags, status (scratch/draft/selected), local manual save and revision history, export/import JSON and Markdown. Distinguish authorText from assistantSuggestion, verbatimQuote, sourceLink, sourceKind, and approvalState. For first prototype use explicit opt-in local-only browser storage and disclose that local-only storage is device/browser-scoped, not synced or securely backed up; ensure export and deletion. Never overwrite author text with a suggestion; edits require human action. Provide a side panel: 'Echo my words' (exact quotations), 'Ask a question', 'Clarify a term', 'Check structure', 'Suggest possible alternatives'. These are UI demonstration tools unless a specific configured server model exists. The default must work without any model/API key, e.g. template question generator and exact-text reflection, clearly labeled non-AI. Provide a readable path 'Attach to a scene / plot thread' without claiming a real Story Studio NCP serializer. Include an export format preview/adapter placeholder for Story Studio Narrative Context Protocol; do not invent a canonical NCP schema.

ONSTAGE — fiction experience and deliberate provenance doorway#

/onstage: a stage shelf of author-selected story projects and a story detail/editorial planning view. Let the writer arrange own selected fragments in a 3-act structure: Act I Setup, Act II Development, Act III Climax + Resolution, with movable scene/beat cards and explicit save. Include one DEMO short narrative for browsing whose fictional text is visibly sample/demo. Add a toggle for 'Audience preview' in which fiction stands alone and does not automatically expose its research roots. Offer an optional 'Behind the story' doorway: when deliberately opened, show the actual source references selected by the author (screenwalks, reviews, traces, issues), with labels that separate fictional events from real documented evidence. Do not expose private traces merely because they were linked, and do not imply this link verifies fictional claims. Interactivity is a proposed experiment; for v1 support only modest local choices/navigation, not an autonomous game engine.

Canonical PUBLIC examples: Episode 120 From Agent to Collective https://miadi-review-service.vercel.app/review/aa3bb198-59b2-4108-a452-36d25603d5e3 ; Plot Threads and Fork Harvest https://miadi-review-service.vercel.app/review/e29a4fc3-302a-4309-8ad9-39085ee26283 ; Author's Desk https://miadi-review-service.vercel.app/review/d7dcde0c-8ab2-4cd7-98d6-a2a937ff28fd ; source video https://youtu.be/aJjBrAbUzjM ; Episode 120 issue https://github.com/jgwill/Miadi/issues/754 ; Author's Desk research trace https://cloud.langfuse.com/project/cmkgk10zy009tad077uc42ixf/traces/f06fa8abaf8e0c68cf71ffcbd320fa1d (access may be private). Link to original Episode 120 prototype only when its actual URL is supplied/verified.

Data layer: typed interfaces + MockAdapter (runs immediately) and ServerAdapter contracts for Reviews, Screenwalks, Evidence/Traces, Chronicle, PlotThreads/NCP, Agents. Private tokens always server-side. Read-only external data by default. No GitHub writes, no automated publish, no autonomous agent work, no unapproved ingestion. Display fallback errors honestly. Do not present user-reported existing components as verified imports.

Deliverables / acceptance tests#

Generate a polished, working responsive prototype with hero/splash, three realm pages, all six backstage destinations, all six working local writing surfaces, Onstage act/scene organizer and audience view. Every major visual label navigates. Provide 2-3 realistic DEMO sample records, seeded from the known research links and visibly labeled. Include a compact Integration Map page listing each service, status, adapter contract, missing package/API URL/key information, and what a local developer must supply. Add basic tests or a manual click-through checklist: navigation, keyboard, save/edit/export, author text protection, mock vs connected labeling, read-only calls, token non-exposure, optional provenance doorway. Finish by listing exactly what runs, what is demo, and the next THREE highest-value integration questions; do not claim finished connections merely because UI is scaffolded.

Goal: a visual prototype that explores how the Factory connects real backstage research to human-authored story creation, with a fully useful desk even before any of the original libraries are wired.