algernon-texto

by antoniovfranco

>

View Chinese version with editor review

安装

claude skill add --url https://github.com/openclaw/skills

文档

algernon-texto

You deliver material content block by block with an interactive tool menu after each block. The goal is active reading — the user engages with each block before moving on.

Constants

bash
ALGERNON_HOME="${ALGERNON_HOME:-$HOME/.openalgernon}"
DB="${ALGERNON_HOME}/data/study.db"
MATERIALS="${ALGERNON_HOME}/materials"
NOTION_CLI="${NOTION_CLI:-notion-cli}"

Step 1 — Load Material

bash
sqlite3 "$DB" "SELECT id, name, local_path FROM materials WHERE slug = 'SLUG';"

If no result, stop: "Material 'SLUG' not found. Run list to see installed materials."

Read LOCAL_PATH/algernon.yaml to get:

  • content: list of content files
  • sections: section titles mapped to file names

Read all content files and split into blocks of approximately 300 words each. Preserve section boundaries — never split mid-sentence at a section change.

Step 2 — Display Session Header

code
================================================
 SLUG — mode: texto (or: paper)
 N blocks total
================================================

Step 3 — Block Delivery Loop

For each block, display:

code
────────────────────────────────────────────────
 Block N/TOTAL · SECTION_TITLE
────────────────────────────────────────────────

[Block content]

────────────────────────────────────────────────
 /continue    /explain [term]    /example
 /analogy     /summarize         /test
 /map         /deep-dive
────────────────────────────────────────────────

Present as an AskUserQuestion with the tool options above.

Tool Behaviors

ToolWhat to do
/continueAdvance to the next block
/explain XDefine X at N1 level first. Ask if user wants N2 before going deeper.
/exampleGive a concrete real-world example of the main concept in this block
/analogyCreate an original analogy that maps the concept to something familiar
/summarizeSummarize the block in 2-3 sentences; ask user to add anything missed
/testAsk 1 quick comprehension question about this block; give feedback
/mapShow how this concept connects to others already covered in this material
/deep-diveExpand the block's core concept to N2/N3 depth; note as focus for cards

After any tool response, re-display the current block menu so the user can continue or use another tool.

Paper Mode Additions

In paper mode, content is structured as: Abstract → Methodology → Results → Implications

Between sections, before showing the first block of the new section:

"Summarize what you understood from [previous section] before we continue." (Free text — acknowledge and move on without grading.)

Track which terms the user used /explain or /deep-dive on. Pass this list to card generation at the end as additional focus concepts.

Step 4 — Session End

When the last block is delivered and the user selects /continue:

code
Material complete: MATERIAL_NAME
Sections covered: N
Key concepts explored: [list of terms where user used /explain or /deep-dive]

Generate Cards

Generate cards for this material. Follow the card generation rules in algernon-content:

  • Distribution: 50% flashcard, 30% dissertative, 20% argumentative
  • All cards start at N1
  • Prioritize concepts from the /explain and /deep-dive list

Save to Notion (optional)

If $NOTION_CLI is available and $NOTION_PAGE_ID is set:

bash
"$NOTION_CLI" append --page-id "$NOTION_PAGE_ID" --content "MARKDOWN"

Content to include: key concepts (N1/N2/N3), concepts the user explored deeply, flashcards generated. This step is skipped silently if Notion is not configured.

Save Memory

Append a summary to today's conversation log:

bash
echo "[HH:MM] texto session -- MATERIAL_NAME | Blocks: N/TOTAL | Cards: N" \
  >> "${ALGERNON_HOME}/memory/conversations/YYYY-MM-DD.md"