Install
$ agentstack add skill-alexwwang-aristotle-skill ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Aristotle — Dispatcher
CRITICAL: DO NOT load REFLECT.md, REVIEW.md, LEARN.md, or CHECKER.md. All logic is handled by MCP orchestration tools. NEVER mention internal mechanism names (MCP tool names, action names, workflow_id, prompt fields) to the user — describe outcomes in plain language only.
ROUTE
cmd = first argument or ""
MATCH cmd:
"learn" → CALL orchestrate_start("learn", args_json) → execute ACTION
"sessions" → CALL orchestrate_start("sessions", "{}") → execute ACTION
"review" → CALL orchestrate_start("review", {sequence: N}) → execute ACTION → REVIEW FEEDBACK
* → GOTO PRE-RESOLVE
PRE-RESOLVE (reflect only)
result = CALL orchestrate_start("reflect", {target_session_id: "", session_file: "",
focus: "last", user_language: , project_directory: })
MATCH result.action:
"fire_sub" → Bridge handles snapshot. execute ACTION. STOP.
"pre_resolve_needed" → GOTO SNAPSHOT-EXTRACT
"notify" → Display result.message. STOP.
other → execute ACTION. STOP.
## SNAPSHOT-EXTRACT (non-Bridge / Claude Code only)
IF session_list is available:
target_session_id = session_list()[0].id
content = session_read(target_session_id)
Bash("mkdir -p ~/.config/opencode/aristotle-sessions")
Write snapshot JSON (schema v1, source: "llm-session-read") to
~/.config/opencode/aristotle-sessions/{target_session_id}_snapshot.json
session_file = that path
ELSE:
session_file = ""
IF any step fails: session_file = ""
result = CALL orchestrate_start("reflect", {target_session_id, session_file,
focus: "last", user_language: , project_directory: })
→ execute ACTION. STOP.
ACTION EXECUTION
If action is pre_resolve_needed:
GOTO SNAPSHOT-EXTRACT (in PRE-RESOLVE section above).
If action is fire_o:
- Call task(category="unspecified-low", runinbackground=true, prompt=o_prompt)
- When notification arrives, call MCP
orchestrate_on_event("o_done", {workflow_id, result}) - Execute returned action per this section
If action is fire_sub:
- If
notify_messageis present, display it to user first - Check
use_bridgein response:
- If
use_bridgeis true (Bridge path — async, NON-BLOCKING):
a. Call aristotle_fire_o(workflow_id=response.workflow_id, o_prompt=response.sub_prompt, target_session_id=target_session_id)
- If fails or tool not found → fall through to blocking path (step 3)
b. Display response message to user. Then STOP — do NOT poll. The Bridge plugin handles the entire R→C chain automatically via session.idle events. No further action needed from the main session.
- If
use_bridgeis absent or false (blocking path):
- Call task(category="unspecified-low", loadskills=[], runinbackground=true, prompt=subprompt)
- When notification arrives, call MCP
orchestrate_on_event("subagent_done", {workflow_id, session_id, result})→ execute returned action per this section
If action is notify:
- Display the
messagefield to user - STOP
If action is done:
STOP
REVIEW FEEDBACK
After displaying review content from MCP, show this menu and wait for user input:
Choose an action:
1. confirm — Accept all rules as-is
2. reject — Reject this reflection
3. revise N — Revise rule #N (append feedback after colon, e.g. "revise 1: add example")
4. re-reflect — Request deeper analysis
Map user input: "confirm"→call MCP orchestrate_review_action(workflow_id, "confirm") | "reject"→call MCP orchestrate_review_action(workflow_id, "reject") | "revise N: feedback"→call MCP orchestrate_review_action(workflow_id, "revise", feedback, {"rule_index": N}) | "re-reflect"→call MCP orchestrate_review_action(workflow_id, "re_reflect"). Execute the returned action per ACTION EXECUTION section.
Parse Arguments
/aristotle learn → ROUTE: command="learn", args={query: ""}
/aristotle learn --domain X --goal Y → ROUTE: command="learn", args={domain: "X", goal: "Y", query: "X Y"}
/aristotle sessions → ROUTE: command="sessions"
/aristotle review → ROUTE: command="review", args={sequence: N}
/aristotle [anything else] → ROUTE: command="reflect" + PRE-RESOLVE
PASSIVE TRIGGER
Monitor the conversation for these patterns:
- You corrected your own output (acknowledged a mistake)
- User pointed out an error and you agreed
- You tried an approach, it failed, and you switched approaches
When any pattern is detected, suggest: "🦉 I detected an error pattern. Run /aristotle to reflect and prevent similar mistakes." Do NOT auto-trigger. Only suggest.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: alexwwang
- Source: alexwwang/aristotle
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.