fluent-db-updater

Atomically update six Fluent learner databases from a single JSON session payload.

Updated Jul 10, 2026
One-click install
npx skills add https://github.com/mituso89/fluent --skill fluent-db-updater-mituso89
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: fluent-db-updater
Source: https://github.com/mituso89/fluent/tree/main/.claude/skills/fluent-db-updater
Command: npx skills add https://github.com/mituso89/fluent --skill fluent-db-updater-mituso89

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Hand-editing six interdependent JSON learner databases (learner-profile, progress, mistakes, mastery, spaced-repetition, session-log) after each language practice session is error-prone and causes silent desync between streaks, accuracy, and review queues. ## Core Features & Use Cases - Atomic multi-database writes: Pipe one JSON payload to update-db.py, which validates the payload, runs pre-write backups, and applies all changes via .tmp + fsync + rename. - Spaced-repetition integration: Records new vocabulary and review results, runs SM-2 scheduling, and rebuilds the review queue on every run. - Session bookkeeping: Bumps total_sessions, streaks, study minutes, milestones, and achievements from a single session record. - Use Case: After a /fluent-review session with five vocabulary items and one grammar error, send one payload containing review_results, errors, and skill_scores to persist everything consistently. ## Quick Start At the end of a practice session, ask the AI to run update-db.py with a JSON payload containing the session_id, date, skill scores, errors, and review results.

Frequently Asked Questions about fluent-db-updater

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I update language learning progress databases after a practice session?▼

Run update-db.py once at session end with a single JSON payload containing session_id, date, skill_scores, errors, new_vocabulary, and review_results. The script validates the payload, backs up existing files, and applies all changes atomically.

How do I add new vocabulary to a spaced-repetition queue?▼

Include a new_vocabulary array in the update-db.py payload with item_id, content, answer, category, difficulty, and initial_quality for each word. The script creates the spaced-repetition records and rebuilds the review queue automatically.

What happens if I send a duplicate session_id to update-db.py?▼

The script exits with code 1 and writes nothing, since sessions are append-only. To correct a session, restore the files from .backups/pre-update-<session_id>/ and resubmit with the corrected payload.

Why does update-db.py exit with code 1 or 2?▼

Exit code 1 means validation failed, such as bad JSON, a missing required field, a malformed milestone, or a duplicate session_id, with no files touched. Exit code 2 means an I/O error mid-write, so restore all six databases from the pre-update backup before retrying.

When should I not use update-db.py for learner data?▼

Skip it for read-only operations, where read-db.py or the fluent-progress skill is appropriate, and during initial setup, which is handled by the fluent-setup skill. update-db.py is designed only for session deltas, not bootstrap.