Files
FabledScribe/docs/features.md
T

7.5 KiB

Features

Scribe is a self-hosted work system-of-record for software projects, built to be driven by Claude Code. There is no in-app LLM — Claude is the sole assistant, reaching Scribe through a built-in MCP endpoint and a bundled Claude Code plugin. The web UI is a clean surface for humans to read and edit the same data.

Notes

Write in Markdown with a live-preview editor (Tiptap/ProseMirror). Headings, bold, italic, lists, code blocks, and task checklists render inline. A slash-command menu (/) inserts common blocks.

  • Wikilinks — Link notes with [[Title]] or [[Title|Display Text]]. Clicking navigates to (or auto-creates) the referenced note; the editor suggests existing titles while you type [[. Backlinks appear in the note viewer sidebar.
  • Tags — First-class ARRAY[text] column with autocomplete. Hierarchical tags (area/backend) supported — filtering by area matches all area/* children.
  • Version history — Every body edit snapshots a version (up to 20 per note). Browse, diff, and restore from the editor's History panel.
  • Draft recovery — In-progress edits persist across page loads and are restored when you reopen a note.
  • Convert freely — Turn a note into a task (sets status=todo) or back again.

Tasks and Issues

Tasks carry status (todoin_progressdone/cancelled), priority (none/low/medium/high), due date, milestone assignment, and a parent task (sub-tasks). Notes and tasks share one model — a task is a note with a status.

  • Work logs — Append timestamped progress entries (with optional duration) to a task without rewriting its body; shown chronologically in the task view.
  • Issues — A task whose kind is corrective: a problem you fixed or are fixing, with symptom → root cause → fix in the body. An issue can link the task it arose from and the System(s) it touches.
  • Recurring tasks — An interval or calendar recurrence rule spawns the next occurrence when a task is completed (a background job drains due spawns).
  • Sub-tasks — Any task can have children via parent_id; the viewer shows them inline.

Projects and Milestones

  • Projects — Group related notes and tasks. Title, description, goal, status (active/paused/completed/archived), and a colour.
  • Milestones — Ordered stages within a project. A milestone is also the home of a plan — its body holds the design (Goal/Approach/Verification) and its child tasks are the steps. Completion percentage is shown on the project page.
  • Kanban view/projects/:id groups tasks by milestone in a column layout with status-advance buttons on the cards.

Systems

A System is a per-project, reusable, self-describing subsystem or area (e.g. "auth", "billing"). Associate any note, task, or issue with a System so research, build-work, and fixes for the same area line up and recurring problem-spots surface.

Rules and Rulebooks

Scribe stores the operator's engineering and workflow rules so Claude follows them across sessions.

  • Rulebooks → topics → rules — Rules are grouped by topic inside a rulebook.
  • Rules arrive by retrieval — Nothing is preloaded. A rule reaches a session when what the agent is about to do matches its trigger: a command, a file being written, or the operator's own message. when_to_apply is therefore the field that decides whether a rule is ever seen.
  • Per-project scope — A project subscribes to rulebooks, and can add project-scoped rules or suppress individual inherited rules/topics.

Stored Processes

Reusable saved prompts (a note with note_type=process) — e.g. a drift-audit or a DRY pass. The bundled plugin syncs each Process into a local Claude Code skill stub (/scribe:sync) that auto-surfaces by relevance and fetches the live procedure on demand.

Search and Knowledge Injection

  • Semantic search — pgvector-backed similarity search over notes and tasks (in-process fastembed embeddings; no external model).
  • Proactive knowledge-injection — the plugin's UserPromptSubmit hook surfaces a short, high-confidence menu of maybe-relevant note titles into Claude's context each turn; Claude pulls a full body only when it judges it relevant. Gated so it stays quiet on most turns and never repeats within a session.

Knowledge Graph

/graph renders notes, tasks, and tags as a D3 force-directed graph. Tag nodes cluster notes that share tags; invisible project hubs attract project members. Physics controls (repulsion, link distance/strength, hub pull, gravity); click a node to peek, click a tag to filter.

Claude via MCP and the plugin

The whole store is reachable by Claude through a built-in MCP endpoint at /mcp (Bearer-auth with an API key). The Scribe Claude Code plugin (shipped in this repo) wires it up:

  • a SessionStart hook that injects active-project context so Scribe surfaces without being asked (fail-open if Scribe is unreachable);
  • universal process-skills — writing-plans, systematic-debugging, verification, brainstorming — that route their output into Scribe;
  • your saved Processes auto-surfaced as skills.

See API Keys & MCP.

Sharing and Collaboration

  • Share — Share any project, note, or task with users or groups at viewer/editor/admin levels from the viewer/project toolbar.
  • Groups — Admins create platform-wide groups and assign member/owner roles; share a resource with a group in one action.
  • Shared with me/shared lists incoming shares with permission badges.
  • Notifications — An in-app bell (unread count, polled) fires when a project or note is shared with you or you're added to a group.

Every read and mutation is scoped by owner + direct shares + group shares.

Data Export and Backup

  • Personal export — download all your notes/tasks as a Markdown ZIP (YAML frontmatter) or a JSON array.
  • Admin backup — full application backup/restore (format v4) with ID remapping on restore for cross-instance migration.

Progressive Web App

Installable as a desktop or mobile app; a service worker caches the shell.

Authentication

Native email + password, plus optional OIDC sign-in (Authentik, Keycloak, etc.) that links to a matching local account. Invite links, a registration toggle, password reset, and session invalidation are included. See SSO / OAuth.

Settings

Tab Contents
General Instance preferences (key/value)
Account Email change, password change, session invalidation
Profile Per-user profile fields
Integrations SearXNG status
Data Personal export; backup / restore (admin)
API Keys Create/revoke fmcp_ keys for the MCP endpoint
Config (admin) Base URL, SMTP, DB-maintenance schedule
Users (admin) User list, invite links, registration toggle
Logs (admin) Error, audit, and usage logs with search
Groups (admin) Create/manage groups and membership

Keyboard Shortcuts

Key Action
g + h Home (dashboard)
g + n Notes
g + t Knowledge (tasks)
g + p Projects
g + r Rulebooks
g (bare) Graph
g + x Trash
n New note
t New task
/ Focus search
? Show shortcuts panel
j / k Navigate list items
Enter Open selected item
e Edit current item
Esc Close panel / blur / go home (progressive)
Ctrl+S Save in editor