Files
FabledScribe/docs/features.md
T
bvandeusenandClaude Opus 5.5 47d40bffd8 docs: architecture, configuration, development and features describe Scribe as it is today
Milestone 544, step 6217 (follow-up to #1778, which rewrote features.md and
api-reference.md in July but left architecture.md and configuration.md alone).

- architecture.md, configuration.md, development.md: rewritten against the
  code. They still described Ollama, chat, SSE generation, voice, project
  summaries, image caching, Docker secrets that the compose files don't use,
  a raw-SQL migration convention the migrations no longer follow, a 27-entry
  migration list, CalVer YY.MM.DD.N tags and the removed infra/ files.
- features.md: adds what shipped since July (spikes, claims, moments, rule
  versions and verification, lessons, reply shapes, snippets and the shape
  ledger, forge integration, family canon, design systems, retrieval tuning)
  and corrects the Settings tabs and keyboard shortcuts (g g is the graph).
- api-reference.md: adds the endpoints for snippets, lessons, design
  systems, family canon, platforms, shared areas, retrieval, rule versions,
  relations and verification, forge connections, webhooks, scheduled
  backups and the newer plugin hooks.
- api-keys-and-mcp.md: Settings tab is "MCP Access"; a plugin install
  section; the tool-family table matches the tools that exist.
- design-system.md: the dated "decisions in progress" changelog (April
  PR log, chat/journal/calendar surfaces) becomes a short present-tense
  section; the stored design system is named as the authority.
- sso-oauth.md: the app is Scribe, not "Fabled Assistant".
- README: feature summary and doc table brought current.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 19:23:56 -04:00

9.0 KiB

Features

Scribe is a self-hosted system of record for the work you do with Claude Code. Claude records what it learned, decided and built, and that record reaches the next session, so a solution is recalled rather than reinvented. There is no language model inside Scribe: Claude reaches it through the MCP endpoint and the Claude Code plugin, and the web UI is where people read and edit the same records.

Notes

A Markdown editor (Tiptap) with headings, lists, code blocks and checklists inline, and a / menu for blocks.

  • Wikilinks: [[Title]] or [[Title|text]], suggested as you type; backlinks show in the viewer.
  • Tags, with autocomplete. Hierarchical tags (area/backend) match their parent's filter.
  • Version history: browse, diff and restore earlier versions of a note.
  • Draft recovery: unsaved edits survive a reload.

Tasks

A task is a note with a status (todo, in_progress, done, cancelled), plus priority, due date, milestone and parent task.

  • Kinds: work; issue, for corrective work, which can link the task it arose from; and spike, a time-boxed investigation whose output is an answer.
  • Work logs: timestamped entries that record progress without rewriting the body. They are what the next session reads first.
  • Claims: a session that logs on a task holds it, so after a context compaction the work comes back to that session, and other sessions can see who is on it.
  • Recurring tasks spawn their next occurrence on a schedule.

Projects, milestones and systems

  • Projects carry a goal, a status and a colour, and group everything else. Entering a project gives Claude a short primer: its goal, recent plans and their next steps, open tasks, its systems and its design system.
  • Milestones are plans: a body holding the design (goal, approach, verification) and ordered step tasks. Starting a plan that matches an active milestone hands back that milestone instead of opening a second one.
  • Systems are a project's named areas ("auth", "retrieval"). Records are tagged with them, each has a charter saying what belongs there, and each maps to a canonical area shared across projects.
  • Duplicate gates: creating a record that reads like an existing one returns the existing one to update instead.

Rules, lessons and moments

  • Rulebooks → topics → rules. A rule in a rulebook applies in every project; a project rule applies only there. A project that departs from a global rule says so with an overrides relation.
  • Rules arrive by retrieval. Nothing is preloaded: a rule reaches a session when what Claude is about to do matches its trigger (when_to_apply), whether that's the operator's message, a command or a file being written.
  • Moments: a rule about when something is done (finishing a task, reporting back, pushing) can be mounted on a moment of work, and arrives whenever that moment happens, whatever the words look like. Settings → General shows which actions reach each moment.
  • Versions and verification: every edit to a rule keeps the text it replaced. A rule that asserts a fact about someone else's software can say how to check it and when it stops being true, and a sweep lists rules due for a check.
  • Preferences are rules with the force of guidance rather than obligation.
  • Lessons record something learned the hard way, keyed to the situation where it applies, and link to the rules they are instances of.
  • Reply shapes: the default shape of Claude's replies (completion report, plan for review, question) arrives at the moment it applies. Settings → General shows them.

Snippets and the shape ledger

  • Snippets are recorded prior art: a reusable piece of code with when to reach for it, its signature and its canonical location in a repo. Claude searches them before building and is shown matching ones before it writes a file.
  • Forge integration: with a git forge connected, Scribe checks a snippet's cached body against its source and marks it current or diverged. Push webhooks keep that fresh.
  • The shape ledger: Scribe extracts the code shapes from a bound repo and tracks how each is accounted for: an instance of a snippet, a deliberate variant with its reason, or a one-off. Coverage shows what is still unclassified.

Family canon

Projects on the same platform (Android apps, Go services, ...) share good ideas. An idea promoted to the family's canon reaches every project on that platform, and each answers it: adopted, a variant with its reason, or owed (filed as a task). /family shows the ideas and every project's answers.

Design systems

Tokens (colour, type, space, motion, ...) and written guidance, with inheritance: a project's design system can extend a house style and record where it departs. Scribe generates a stylesheet from it, checks code snippets against it, and gives Claude the values to use before it writes UI. /design-systems edits them.

Stored processes

Saved procedures, such as a drift audit or a DRY pass. The plugin syncs each one into a Claude Code skill (/scribe:sync), which fetches the live procedure when it is invoked.

Search and context injection

  • Semantic search over notes, tasks, rules, milestones and systems, with embeddings computed in-process (no external model service). It falls back to keyword search if the embedder is unavailable.
  • Context injection: the plugin's hooks show Claude a short menu of possibly relevant records at the moments they matter: rules and prior art when a prompt arrives, before a command or a file write, and when a moment of work is reached. Claude opens a full record only when it judges it relevant.
  • Tuning: each surface has its own thresholds and budget, in Settings → General. Every change is logged with its reason, and retrieval telemetry shows what was surfaced and what was opened.

Claude via MCP and the plugin

The whole store is reachable through the MCP endpoint at /mcp, authenticated with an API key. The Claude Code plugin in this repo adds:

  • hooks for session start, each prompt, before and after tool calls, the end of a turn, compaction and session end, all failing open if Scribe is unreachable;
  • skills for the working practices: using Scribe, writing plans, systematic debugging, verification, brainstorming, reporting back, reusing code, shape accounting and family canon;
  • your stored processes as skills.

See API Keys & MCP.

The web UI

  • Dashboard: what to work on next. Knowledge browses everything.
  • Graph (/graph): notes, tasks and tags as a force-directed graph, with physics controls and filtering by tag.
  • Trash: deleted records wait here until retention purges them, and can be restored.
  • Installable as a desktop or mobile app.

Sharing

Share a project, note or task with users or groups, as viewer, editor or admin. Admins manage groups. /shared lists what has been shared with you, and an in-app bell notifies you of new shares. Every read and write is checked against ownership and shares.

Export and backup

  • Personal export: your notes and tasks as a Markdown ZIP (with YAML frontmatter) or JSON.
  • Admin backup and restore, with ids remapped so a backup restores onto another instance.
  • Scheduled backups: a daily, dated, uncompressed tar to a folder or an S3-compatible bucket, laid out so a deduplicating tool such as restic stores only what changed. python -m scribe.restore brings a fresh instance back from one. See Backups.

Sign-in

Email and password, plus optional OIDC single sign-on (Authentik, Keycloak, ...) that links to a matching local account. Invite links, password reset and signing out other sessions are included. See SSO / OAuth.

Settings

Tab Contents
General Timezone, trash retention, retrieval thresholds, moments, reply shapes
Account Email, password, active sessions
Profile About you, response preferences, interests, work schedule
Notifications Email notifications
Integrations SearXNG, git forge connections
Data Export, backup and restore, scheduled backups (admin)
MCP Access API keys and the command to connect Claude
Config (admin) What's running, application URL, plugin marketplace, database maintenance, SMTP, forge webhook
Shared areas (admin) The canonical areas systems map to
Platforms (admin) The platform catalogue family canon is grouped by
Users (admin) Registration, invites, users
Logs (admin) Error, audit and usage logs
Groups (admin) Groups and membership

Keyboard shortcuts

Key Action
g h Dashboard
g n Notes
g p Projects
g r Rules
g g Graph
g x Trash
n New note
t New task
e Edit the note you're viewing
/ Focus search
? Show shortcuts
j / k Move through a list
Enter Open the selected item
Esc Close the overlay, leave the field, then go to the dashboard
Ctrl+S Save in the editor