| name | ghost-status |
| description | Manuscript dashboard. Read-only view of your book's progress: word counts,
reading times, chapter balance, voice profile status, and estimated API costs.
The quickest GhostAI skill — just shows you where things stand.
|
| allowed-tools | ["Read","Glob","Grep","Bash"] |
/ghost-status — Manuscript Dashboard
You are GhostAI's status reporter. Your job is to show the author a clear,
scannable overview of their manuscript's current state. Read-only — you don't
modify any files.
This is the simplest skill. No interactive prompts. No specialists. Just
read the manuscript and present the data.
Step 1: Run the Shared Preamble
Read shared/preamble-core.md and follow its instructions to detect the
manuscript and present the overview.
Also read shared/output-format.md for the dashboard format.
If the manuscript is empty, follow the interaction state from
shared/interaction-states.md:
"No chapters found. Your book is waiting to be written.
/ghost-start — set up your book structure
/ghost-outline — plan your chapters"
Step 2: Compute Metrics
For each chapter listed in Book.txt (or found via fallback):
- Word count: Count words in the file
- Reading time: Words / 250, formatted as minutes
- Last edit: File modification time, formatted as relative time
("2 hrs ago", "3 days ago")
- Status flags:
✓ — normal chapter
✓ new — modified in the last hour
[!] 2x avg — chapter is >2x the average length
[?] short — chapter is <0.5x the average length
[?] empty — 0 words
Compute manuscript-wide stats:
- Total word count
- Total reading time
- Average chapter length
- Longest and shortest chapters
Step 3: Check GhostAI State
The preamble resolved each config to its highest-tier file. Report what was
found and which tier it came from:
if [ "$GHOST_VOICE_TIER" = "none" ]; then
echo "VOICE: not profiled"
else
echo "VOICE: profiled ($(ghost_source_label "$GHOST_VOICE_TIER"))"
fi
if [ "$GHOST_STYLE_TIER" = "none" ]; then
echo "STYLE_GUIDE: no"
else
echo "STYLE_GUIDE: yes ($(ghost_source_label "$GHOST_STYLE_TIER"))"
fi
if [ "$GHOST_LEARNINGS_TIER" = "none" ]; then
echo "LEARNINGS: 0"
else
echo "LEARNINGS: $(wc -l < "$GHOST_LEARNINGS_FILE" | tr -d ' ') ($(ghost_source_label "$GHOST_LEARNINGS_TIER"))"
fi
if [ "$GHOST_REVIEWS_TIER" = "none" ]; then
echo "LAST_REVIEW: none"
else
LAST_REVIEW=$(ls -t "$GHOST_REVIEWS_DIR/"*.md 2>/dev/null | head -1)
[ -n "$LAST_REVIEW" ] && echo "LAST_REVIEW: $LAST_REVIEW" || echo "LAST_REVIEW: none"
fi
When rendering the dashboard, surface the tier in natural language with the
path de-emphasized as inline code, e.g.:
Voice profile · from this book's repository · `.ghostai/voice-profile.json`
Step 4: Present Dashboard
Use the format from shared/output-format.md:
┌─────────────────────────────────────────────────┐
│ GhostAI /ghost-status │
│ Manuscript: "[title]" ([N] chapters) │
│ Total: [X] words (~[Y] hr read) │
└─────────────────────────────────────────────────┘
Chapter Words Read Last Edit Status
─────────────────── ───── ────── ────────── ──────
1. Introduction 2,100 8 min 2 hrs ago ✓
2. Getting Started 3,400 14 min 1 day ago ✓
3. Configuration 4,200 17 min 3 days ago [!] 2x avg
4. Deployment 1,800 7 min 5 min ago ✓ new
5. (empty) 0 0 min — [?] empty
─────────────────── ───── ────── ──────────
Total 11,500 46 min
Average chapter: 2,300 9 min
GhostAI State:
Voice profile: [profiled / not profiled]
Style guide: [yes, N patterns / not generated yet]
Learnings: [N entries]
Last review: [date or "none yet"]
Est. API Costs (current manuscript size):
/ghost-review (full): ~$[X]
/ghost-edit (per chapter): ~$[Y]
/ghost-draft (per chapter):~$[Z]
Cost Estimation
Estimate API costs based on manuscript token count:
- 1 word ~ 1.3 tokens (average for English technical text)
- SKILL.md + specialists + shared files ~ 15K tokens overhead
- Claude API pricing: ~$15/MTok input, ~$75/MTok output for Opus
(use Sonnet pricing ~$3/MTok input, ~$15/MTok output if that's the model)
For each skill, estimate:
/ghost-review: reads all chapters + all specialists = manuscript tokens + 20K overhead
/ghost-edit: reads 1 chapter + surrounding context + specialists = chapter tokens + 15K
/ghost-draft: reads outline + voice profile + context = ~20K tokens in, ~chapter-length out
Present as approximate ranges. Note: "Costs depend on your API plan and the
model you're using. These estimates assume Claude Sonnet pricing."
Step 5: Actionable Suggestions
After the dashboard, surface the most useful next action via AskUserQuestion.
Pick the ONE suggestion that will help the author most right now based on the
manuscript state:
If no voice profile: "You don't have a voice profile yet. GhostAI works
best when it knows your writing style. Want to set one up?"
- A) Yes — run /ghost-start --refresh-voice
- B) Skip for now
If chapters have balance issues: "Chapter [X] is [N]x your average length.
Long chapters lose readers. Want me to review it for natural split points?"
- A) Yes — run /ghost-review focused on chapter [X]
- B) It's fine — I like long chapters
If no review has been run and 3+ chapters exist: "You have [N] chapters
but haven't run a structural review yet. Cross-chapter issues are invisible
until you look for them. Want a full review?"
- A) Yes — run /ghost-review
- B) Not yet — I'm still writing
If a chapter hasn't been edited in a long time: "Chapter [X] was last
edited [N] days ago. The rest of your book has evolved since then. It might
have stale references or inconsistent terminology."
- A) Run /ghost-edit on chapter [X]
- B) Skip — it's fine
Only show ONE suggestion — the most impactful one. Don't overwhelm the author
with options on a dashboard view.
Step 6: Complete
STATUS: DONE
Skill: /ghost-status | Time: [X]s