Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Algernon Texto

v1.0.0

Block-by-block reading mode for OpenAlgernon materials. Use when the user runs `/algernon texto SLUG`, `/algernon paper SLUG`, says "quero ler [material]", "...

0· 110·0 current·0 all-time
byAntonio V. Franco@antoniovfranco
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
!
Purpose & Capability
The stated purpose (block-by-block reading for OpenAlgernon materials) aligns with actions in SKILL.md (querying a local materials DB, reading content files, splitting into blocks, generating cards). However, the skill's runtime instructions call external tools (sqlite3, notion-cli) and rely on ALGERNON_HOME and NOTION_PAGE_ID, none of which are declared in the registry metadata. The missing declarations are an incoherence: either the skill should declare required binaries/env or avoid depending on them.
!
Instruction Scope
Instructions direct the agent to run a sqlite3 query against ${ALGERNON_HOME}/data/study.db, read local material files, split content into blocks, and append a session summary to ${ALGERNON_HOME}/memory/conversations/YYYY-MM-DD.md. They also instruct an optional external write via a Notion CLI. These file reads/writes and the DB access are within the feature's purpose, but they access local data and perform disk writes and potential external transmission (Notion) while the skill metadata declared no required env or binaries — that's scope and transparency mismatch.
Install Mechanism
This is an instruction-only skill (no install spec or code), which is lower-risk for arbitrary code installs. However, the runtime snippets assume availability of sqlite3 and a Notion CLI (default 'notion-cli') on PATH; the skill does not declare these as required binaries. That omission is an operational mismatch rather than an installer risk, but it affects what the agent will try to execute.
!
Credentials
Registry metadata lists no required environment variables, but SKILL.md uses ALGERNON_HOME (with a HOME default), NOTION_CLI (default 'notion-cli'), and conditionally checks NOTION_PAGE_ID. The Notion page ID is a credential-like value that controls external posting; its presence would allow the skill to append content to an external page. The skill also reads the user's local sqlite DB and material files — access to local data is proportional to the stated purpose but should have been declared clearly.
Persistence & Privilege
The skill does not request always:true, does not modify other skills, and its persistence actions are limited to writing a session summary into an ALGERNON_HOME memory file and optionally appending to a Notion page. Those behaviors are reasonable for a reading/session skill, but they should be documented and consented to by the user.
What to consider before installing
This skill appears to implement a guided reading flow and will read your local OpenAlgernon database (~/.openalgernon/data/study.db) and material files, split content into blocks, and append a session summary to a local memory file under ~/.openalgernon. It will also optionally call a Notion CLI to post generated content if you set NOTION_PAGE_ID. Before installing/use: (1) Confirm you trust and understand the files under ALGERNON_HOME (or set ALGERNON_HOME to a safe directory). (2) Ensure sqlite3 and any notion-cli you expect are installed; the skill assumes them but doesn't declare them. (3) Do not set NOTION_PAGE_ID unless you want the skill to upload session content to that Notion page. (4) If you have sensitive data in the sqlite DB or materials, review/backup it first. The main issues are missing declarations (binaries/env) and the skill's ability to read local files and optionally transmit content externally — those are expected for this feature but should be made explicit and consented to.

Like a lobster shell, security has layers — review code before you run it.

latestvk97fqaszk8ck8bah7rxzcjqge5831k54

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

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
/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:

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"

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…