← ClaudeAtlas

fluent-db-updaterlisted

Atomically update all 6 Fluent learner databases (learner-profile, progress, mistakes, mastery, spaced-repetition, session-log) at session end by calling .claude/hooks/update-db.py with a single JSON payload. Use at the end of every practice session — fluent-writing, fluent-vocab, fluent-speaking, fluent-reading, fluent-review, fluent-learn — to persist the session's errors, review results, new vocabulary, and session metadata.
aymkin/fluent · ★ 0 · Data & Documents · score 70
Install: claude install-skill aymkin/fluent
# DB Updater ## Overview Every practice skill ends with a DB update. Instead of hand-editing 6 JSON files (error-prone, racy, easy to desync), pipe one JSON report to `update-db.py`. The script runs pre-write backups, validates the payload, applies all changes atomically via `.tmp + fsync + rename`, and rebuilds the spaced-repetition queue. ## When to Use Load this skill whenever the tutor: - Finishes a practice session and needs to persist results. - Needs to add new vocabulary to the spaced-repetition queue. - Needs to record new errors, review results, or mastery changes. - Needs to bump `total_sessions`, `current_streak_days`, or `total_study_minutes`. Skip this skill for read-only operations (use the `fluent-progress` skill or `read-db.py` directly) and during session setup (use `fluent-setup` skill instead — `update-db.py` is for session deltas, not bootstrap). ## Instructions ### 1. Call the script Run from the repo root: ```bash python3 "${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PROJECT_DIR:-.}}/.claude/hooks/update-db.py" <<'EOF' { ...payload... } EOF ``` Exit codes: `0` success, `1` validation error, `2` I/O error. ### 2. Fill the payload **Required fields** - `session_id` — string, convention `session-NNN`. Use `computed.next_session_id` from `read-db.py`. - `date` — YYYY-MM-DD. **Optional fields** — omit to skip. Full canonical example (copy-paste this and fill in): ``` ${CLAUDE_PLUGIN_ROOT:-${CLAUDE_PROJECT_DIR:-.}}/.claude/references/db-updater-payload.exam