Overview
Universe Management
Project Details
Authors
{{ statusMessage }}
Select a universe from the sidebar.
Total Words
{{ totalUniverseWords(selectedUniverse).toLocaleString() }}
Projects
{{ selectedUniverse.projects.length }}
Active
{{ selectedUniverse.projects.filter(p=>p.metadata.status==='active').length }}
Complete
{{ selectedUniverse.projects.filter(p=>p.metadata.status==='complete').length }}
{{ proj.name }}
{{ proj.metadata.workType }} {{ getAuthor(proj.metadata.authorId).name }} {{ proj.metadata.genre }}
{{ progressPct(proj) }}%
{{ (proj.dynamicMaster ? proj.dynamicMaster.wordCount : 0).toLocaleString() }}
written
{{ Number(proj.metadata.wordCountTarget).toLocaleString() }}
target
{{ progressPct(proj) >= 100 ? '✓ done' : Math.max(0, Number(proj.metadata.wordCountTarget) - (proj.dynamicMaster ? proj.dynamicMaster.wordCount : 0)).toLocaleString() }}
{{ progressPct(proj) >= 100 ? '' : 'to go' }}
{{ proj.metadata.deadline }}
deadline
No target set — add one in Project Details
{{ proseStatusCount(proj,'done') }} done {{ proseStatusCount(proj,'revision') }} revision {{ proseStatusCount(proj,'draft') }} draft {{ proseStatusCount(proj,'todo') || proj.allProseDocs.length }} todo {{ proj.allProseDocs.length }} total
{{ proj.dynamicMaster.docCount }} prose docs {{ proj.metadata.deadline }}
Bible Summary Style Guide
Show:
No folders with content found.
{{ ch.name }} {{ ch.totalWords.toLocaleString() }}w
{{ doc.title }} {{ doc.role }} {{ doc.wordCount.toLocaleString() }}w
Dynamic Master {{ proj.dynamicMaster.docCount }} docs {{ proj.dynamicMaster.wordCount.toLocaleString() }}w
Project Tree
{{ umUniverses.length }} universes
No universes loaded. Click the button below to load.
{{ u.name || u.id || '(unnamed)' }}
{{ f.name || f.id || '(unnamed)' }} {{ f.type || 'folder' }}
(no child items)
{{ d.title || d.id }}
Select an item Folder Document {{ umSelectedItem.type }}
{{ umClipboard.type }} {{ umClipboard.isCut ? '(cut)' : '(copied)' }}
Select a folder or document
Universe
{{ umUniverses.find(u => u.id === umSelectedItem.universeId)?.name }}
Statistics
Folders: {{ umUniverses.find(u => u.id === umSelectedItem.universeId)?.folders?.length || 0 }}
Documents: {{ umUniverses.find(u => u.id === umSelectedItem.universeId)?.documents?.length || 0 }}
Projects: {{ umUniverses.find(u => u.id === umSelectedItem.universeId)?.folders?.filter(f => f.type === 'project').length || 0 }}
Tip: To copy or move content between universes, expand this universe and select a project or folder.
Type
{{ umUniverses.find(u => u.id === umSelectedItem.universeId)?.folders.find(f => f.id === umSelectedItem.folderId)?.type === 'project' ? 'Project' : 'Folder' }} {{ umSelectedItem.type }}
Name
{{ umUniverses.find(u => u.id === umSelectedItem.universeId)?.folders.find(f => f.id === umSelectedItem.folderId)?.name || '(unnamed folder)' }} {{ umUniverses.find(u => u.id === umSelectedItem.universeId)?.documents.find(d => d.id === umSelectedItem.documentId)?.title || '(unnamed doc)' }}
ID
{{ umSelectedItem.folderId || umSelectedItem.documentId }}
{{ advisorProject.name }}
{{ advisorProject.metadata.workType }}
{{ (advisorProject.dynamicMaster ? advisorProject.dynamicMaster.wordCount : 0).toLocaleString() }} words / {{ Number(advisorProject.metadata.wordCountTarget).toLocaleString() }} target
Author
Genre
Word Count Target
{{ progressPct(advisorProject) }}% complete · {{ Math.max(0, Number(advisorProject.metadata.wordCountTarget) - (advisorProject.dynamicMaster ? advisorProject.dynamicMaster.wordCount : 0)).toLocaleString() }} to go
Publishing Checklist
No checklist for this work type.
{{ item.label }}
{{ checklistDoneCount }}/{{ currentChecklist.length }} complete
Select a project to start advising.
Select a project on the left to start a publishing advice chat.
Sign in or pick a folder to get started.
Pen Names
{{ authors.length }}
Hub Assistant
Ask anything about your portfolio, publishing plans, or what to work on next.
What should I work on next? Publishing plan Analyse portfolio Compare universes Pen name routing
{{ preview.title }} {{ preview.wordCount.toLocaleString() }} words
Attach document to message
No documents found in this project.
New Universe
Universe Name *
ID: {{ wizard.universeId }}
A universe with this name already exists.
Description (optional)
Universe: {{ wizard.universeName }}
First Project Name *
Work Type
Delete Universe

This permanently deletes the universe. All its projects will be removed from the Hub and cannot be recovered from here.

{{ deleteModal.universeName }}
{{ deleteModal.projectCount }} project{{ deleteModal.projectCount !== 1 ? 's' : '' }}  ·  {{ deleteModal.wordCount.toLocaleString() }} words
ID: {{ deleteModal.universeId }}
Type the universe name to confirm:
Edit Universe
ID: {{ editModal.fileId.toLowerCase().replace(/[^a-z0-9]+/g, '_').replace(/^_|_$/g, '') }}
A universe with this ID already exists.
Duplicate Universe
Source: {{ duplicateModal.sourceName }}