← Back to Skills Marketplace
antoniovfranco

Algernon Debate

by Antonio V. Franco · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
218
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install algernon-debate
Description
Design trade-off debate mode for OpenAlgernon. Use when the user runs `/algernon debate [SLUG]`, says "quero debater [topic]", "me desafia sobre trade-offs",...
README (SKILL.md)

algernon-debate

You run a structured technical debate. The user picks a side, defends it, and you press from the opposing position. The synthesis at the end — not which side "won" — is the learning goal: precise conditions under which each approach is the right choice.

Constants

DB=/home/antonio/Documents/huyawo/estudos/vestibular/data/vestibular.db
NOTION_CLI=~/go/bin/notion-cli

Step 1 — Select a Debate Topic

Query argumentative cards from the material (these already contain comparisons and trade-offs by design):

sqlite3 $DB \
  "SELECT c.id, c.front, c.back FROM cards c
   JOIN decks d ON d.id = c.deck_id
   JOIN materials m ON m.id = d.material_id
   WHERE m.slug = 'SLUG' AND c.type = 'argumentative'
   ORDER BY RANDOM() LIMIT 5;"

Select the card with the clearest two defensible sides. Good topics have no single correct answer — the right choice genuinely depends on context.

Examples of strong debate topics:

  • Fine-tuning vs RAG for domain knowledge injection
  • Vector database A vs B for a specific use case
  • LangChain vs LlamaIndex for production pipelines
  • Centralized vs distributed embedding generation
  • Cosine similarity vs dot product for retrieval

Present: "Debate topic: [TOPIC]. Which side do you take?" AskUserQuestion options: [SIDE_A, SIDE_B]

Step 2 — Opening Argument

AskUserQuestion (free text):

"State your opening argument for [CHOSEN_SIDE]. Be specific — give at least one concrete scenario where your side wins."

Step 3 — Counter-Argument

You now argue the opposing side with the strongest possible objections. Present 2-3 sharp, concrete counter-arguments — not generic ones.

Bad counter: "But [SIDE_B] also has advantages." Good counter: "Your argument assumes [specific condition]. In systems where [different condition], [SIDE_B] outperforms because [specific reason]."

AskUserQuestion (free text):

"How do you respond to these objections?"

Step 4 — Rebuttal Round

Identify the weakest point in the user's rebuttal and press it directly. AskUserQuestion (free text):

"Final argument — make your best case."

Step 5 — Synthesis

Regardless of who "won" the exchange, deliver a balanced synthesis:

Debate synthesis — [TOPIC]

[SIDE_A] is the right choice when:
- [concrete condition 1]
- [concrete condition 2]

[SIDE_B] is the right choice when:
- [concrete condition 1]
- [concrete condition 2]

The critical factor is: [one sentence that resolves the trade-off]

This synthesis is exactly what a strong technical interview answer looks like — it names the conditions rather than picking a winner.

Send to Notion

~/go/bin/notion-cli append --page-id PHASE_PAGE_ID --content "MARKDOWN"

Include the topic, the synthesis, and any gaps in the user's arguments.

Save Memory

Append to today's conversation log:

[HH:MM] debate session — MATERIAL_NAME
Topic: [topic] | Key insight: [one sentence from synthesis]
Usage Guidance
Before installing, verify and fix these inconsistencies: (1) The SKILL.md references a hard-coded local DB in /home/antonio — confirm whether the skill should access your files and change it to a configurable path or remove it. (2) The skill calls ~/go/bin/notion-cli and uses PHASE_PAGE_ID but declares no required binaries or env vars — require explicit environment variables (e.g., NOTION_PAGE_ID, NOTION_TOKEN) and document installation steps. (3) Decide whether you want the agent to read local databases and write to external services; if not, do not install. (4) If you do install, run it in a sandboxed account or container, inspect and edit SKILL.md to remove personal paths and to make all external calls explicit, and ensure notion-cli and sqlite3 are intended and safe. (5) If you cannot verify provenance of the skill (source unknown), prefer not to install or request a version with no hard-coded personal paths and clear declarations of required credentials.
Capability Analysis
Type: OpenClaw Skill Name: algernon-debate Version: 1.0.0 The skill contains potential command injection and SQL injection vulnerabilities in SKILL.md. It executes shell commands using sqlite3 and a local binary (~/go/bin/notion-cli) with variables that may be derived from user input without explicit sanitization. Additionally, it uses hardcoded absolute file paths (/home/antonio/...) which indicates a highly environment-specific or poorly constructed script, though no clear evidence of intentional malice or data exfiltration was found.
Capability Assessment
Purpose & Capability
The skill claims to run a debate mode, but the SKILL.md hard-codes DB=/home/antonio/.../vestibular.db and NOTION_CLI=~/go/bin/notion-cli and runs sqlite3 against that DB. The registry metadata lists no required config paths, binaries, or env vars — this is inconsistent and suggests the skill expects access to a specific user's local files.
Instruction Scope
Runtime instructions tell the agent to read a local SQLite DB, run shell commands (sqlite3) to select cards, append content to a Notion page via notion-cli, and append to a conversation log. These actions access local files and transmit content externally (Notion) but none of those accesses are declared in the skill metadata or justified by the description.
Install Mechanism
There is no install spec (instruction-only), which is low-install-risk. However, the instructions implicitly require sqlite3 and a user-installed notion-cli at ~/go/bin/notion-cli; those dependencies are neither declared nor ensured, creating a hidden dependency and operational surprise.
Credentials
The skill declares no required environment variables or credentials, yet the Notion append step requires a PHASE_PAGE_ID and notion-cli will need Notion credentials; the DB path points to a specific home directory. This mismatch could cause the agent to access sensitive local data or require supplying unrelated credentials without transparent justification.
Persistence & Privilege
The skill is not set to always:true and is user-invocable only, which is appropriate. Note: model invocation is enabled (platform default), but that alone is not a concern here; the main issue is undeclared data access in the instructions.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install algernon-debate
  3. After installation, invoke the skill by name or use /algernon-debate
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of algernon-debate: structured technical debate mode for OpenAlgernon. - Guides users through a 5-step trade-off debate, forcing nuanced arguments on both sides. - Ends each debate with a balanced, interview-quality synthesis outlining when each approach is best. - Automatically saves debate summaries to Notion and conversation logs. - Activates on debate- and trade-off-related user prompts.
Metadata
Slug algernon-debate
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Algernon Debate?

Design trade-off debate mode for OpenAlgernon. Use when the user runs `/algernon debate [SLUG]`, says "quero debater [topic]", "me desafia sobre trade-offs",... It is an AI Agent Skill for Claude Code / OpenClaw, with 218 downloads so far.

How do I install Algernon Debate?

Run "/install algernon-debate" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Algernon Debate free?

Yes, Algernon Debate is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Algernon Debate support?

Algernon Debate is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Algernon Debate?

It is built and maintained by Antonio V. Franco (@antoniovfranco); the current version is v1.0.0.

💬 Comments