Skills algernon-texto

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/antoniovfranco/algernon-texto" ~/.claude/skills/clawdbot-skills-algernon-texto && rm -rf "$T"
manifest: skills/antoniovfranco/algernon-texto/SKILL.md
source content

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

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

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

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

Step 3 — Block Delivery Loop

For each block, display:

────────────────────────────────────────────────
 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
/continue
Advance to the next block
/explain X
Define X at N1 level first. Ask if user wants N2 before going deeper.
/example
Give a concrete real-world example of the main concept in this block
/analogy
Create an original analogy that maps the concept to something familiar
/summarize
Summarize the block in 2-3 sentences; ask user to add anything missed
/test
Ask 1 quick comprehension question about this block; give feedback
/map
Show how this concept connects to others already covered in this material
/deep-dive
Expand 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:

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:

"$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:

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