Use when running the complete knowledge pipeline for a book, from self-learn through ingestion, verification, absorption, and sync
Vault path + GitHub task repo: read from ${CLAUDE_PLUGIN_ROOT}/brain-os.config.md (or user-local ~/.brain-os/brain-os.config.md). Keys: vault_path:, gh_task_repo:. Substitute $GH_TASK_REPO below with the configured value.
/study <epub_path> --notebook-id <nlm_id>
/study --resume Resume a pipeline that was interrupted
/study --status Show pipeline status for all books
Step 1: /self-learn --book <epub> --notebook-id <id>
├── Phase 1: Extract (epub → atomic notes in knowledge/raw/)
├── Phase 2: Validate (questions vs NotebookLM, ≥95 threshold, 100% pass)
└── Phase 3: Extend + Ingest (book note in knowledge/books/ + synthesis)
↓
Step 2: /verify (50 fresh questions vs NotebookLM → audit flag)
├── PASS → audited: true
└── FAIL → audited: false → STOP, notify user
↓
Step 3: /absorb (book note → vault connections, bypass approval since audited: true)
↓
Step 4: commit + push (git commit + push all changes)
↓
Step 5: Notify all 3 channels
├── GH issue at $GH_TASK_REPO (review task)
├── Daily note entry
└── Audit flag updated with pipeline_completed timestamp
IMPORTANT: Run each step sequentially. Do NOT skip steps.
/self-learn --book <epub_path> --notebook-id <nlm_id>
Wait for all 3 phases to complete. Phase 3 now creates the structured book note
in knowledge/books/ (previously a separate /ingest step). Check with /self-learn --status.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/verify/scripts/verify.py {vault}/knowledge/raw --status
If flag is false, run /verify with 50 fresh questions.
If flag is already true (from self-learn validation), proceed.
Run the /absorb skill. Since verify is true, bypass approval — apply all vault connections automatically.
Commit and push all vault changes to git.
gh issue create -R $GH_TASK_REPO --title "Review $BOOK_TITLE notes" --body "..." --label status:ready --label owner:human --label weight:quickpipeline_completed timestampEach book's pipeline state is tracked in _validation/audit-flag.json:
{
"flag": "true|false|manual",
"last_audit": "ISO timestamp",
"audit_score": "159/159 at >=95",
"pipeline_completed": "ISO timestamp",
"ingested": true,
"absorbed": true
}
If pipeline is interrupted, /study --resume checks audit-flag.json to determine which step to resume from.
<<<<<<< Updated upstream
Follow skill-spec.md § 11. Append to {vault}/daily/skill-outcomes/study.log:
{date} | study | study | ~/work/brain-os-plugin | knowledge/books/{slug}.md | commit:{hash} | {result}
result: pass if full pipeline complete (self-learn → verify → absorb → commit), partial if interrupted mid-pipeline, fail if verify failsargs="{epub_path}", score={step_reached}/5
=======
After each /study run, append one line to {vault}/daily/skill-outcomes/study.log:{date} | study | {action} | ~/work/brain-os-plugin | {vault}/knowledge/books/{book-slug}.md | commit:{hash} | {result}
mode: full, resume, or statusresult: pass if full pipeline completed, partial if stopped at verification, fail if errorsStashed changes