fix: pedagogical review - add expected output, CLAUDE.md, fix consistency
Address findings from pedagogical review simulating a non-expert user: - Add CLAUDE.md to project root (was referenced but missing) - Fix README score from 12/9/1 to 13/8/1 (match feature-map.md) - Add Expected Output sections to examples 01, 02, 05, 09, 10 - Create pipeline-output/ and briefings/ directories - Add example ordering guidance in README - Add plan requirements for examples 11/13 in prerequisites - Add skill frontmatter explanation in GETTING-STARTED.md - Explain Cowork/Dispatch with links in cowork-integration - Expand .gitignore with node_modules and generated output files - Add model override hints in agent frontmatter comments Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cb09b7aafc
commit
06ae605051
15 changed files with 237 additions and 35 deletions
|
|
@ -2,7 +2,7 @@
|
|||
name: researcher
|
||||
description: Web research agent that searches, reads, and summarizes information from multiple sources. Use when you need current facts, comparisons, or background context.
|
||||
tools: ["WebSearch", "WebFetch", "Read", "Write", "Glob", "Grep"]
|
||||
model: sonnet
|
||||
model: sonnet # Change to "opus" for deeper reasoning, or remove this line to use your default model
|
||||
---
|
||||
|
||||
# Researcher Agent
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
name: reviewer
|
||||
description: Quality review agent that checks content for accuracy, clarity, and completeness. Use before publishing or sharing any content.
|
||||
tools: ["Read", "Glob", "Grep", "WebSearch", "WebFetch"]
|
||||
model: sonnet
|
||||
model: sonnet # Change to "opus" for more thorough review, or remove to use default
|
||||
---
|
||||
|
||||
# Reviewer Agent
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
name: writer
|
||||
description: Content drafting agent that produces clear, structured writing. Use for blog posts, documentation, reports, and summaries.
|
||||
tools: ["Read", "Write", "Edit", "Glob", "Grep"]
|
||||
model: sonnet
|
||||
model: sonnet # Change to "opus" for higher quality writing, or remove to use default
|
||||
---
|
||||
|
||||
# Writer Agent
|
||||
|
|
|
|||
10
.gitignore
vendored
10
.gitignore
vendored
|
|
@ -15,5 +15,15 @@ Thumbs.db
|
|||
.env
|
||||
.env.*
|
||||
|
||||
# Node
|
||||
node_modules/
|
||||
|
||||
# Logs
|
||||
*.log
|
||||
|
||||
# Generated output (created by examples)
|
||||
research-output.md
|
||||
changelog-summary.md
|
||||
hacker-news-top5.md
|
||||
hn-summary-today.txt
|
||||
project-scaffold/
|
||||
|
|
|
|||
62
CLAUDE.md
62
CLAUDE.md
|
|
@ -1,35 +1,49 @@
|
|||
# Claude Code Complete Agent
|
||||
|
||||
This is a working companion repo for the article
|
||||
"Every OpenClaw Feature, Covered by Claude Code."
|
||||
## What this project is
|
||||
|
||||
## What This Repo Does
|
||||
A companion repo for the article "Every OpenClaw Feature, Covered by
|
||||
Claude Code." It contains working configuration, 13 examples, and
|
||||
documentation that maps OpenClaw's 22 capabilities to Claude Code's
|
||||
ecosystem.
|
||||
|
||||
It demonstrates that Claude Code's ecosystem (tools, MCP servers,
|
||||
plugins, hooks, agents, skills, and triggers) covers the same
|
||||
20 capabilities that made OpenClaw the fastest-growing open-source
|
||||
project in history.
|
||||
## How to use this
|
||||
|
||||
## How to Use It
|
||||
1. Browse `examples/` and paste any prompt into this session
|
||||
2. Read `feature-map.md` for the full comparison table
|
||||
3. Follow `GETTING-STARTED.md` to turn this into your personal setup
|
||||
|
||||
1. Open this directory in Claude Code: `claude`
|
||||
2. Try any example from `examples/` by pasting the prompt
|
||||
3. Explore agents in `.claude/agents/` and skills in `.claude/skills/`
|
||||
4. Review security hooks in `hooks/`
|
||||
## What is configured
|
||||
|
||||
## Project Memory
|
||||
- **Agents** (`.claude/agents/`): researcher, writer, reviewer
|
||||
- **Skills** (`.claude/skills/`): daily-briefing, web-research, send-slack-message
|
||||
- **Hooks** (`hooks/`): pre-tool-use blocks dangerous commands, post-tool-use logs all actions
|
||||
- **Playwright MCP** (`.mcp.json`): disabled by default, enable for browser automation examples
|
||||
- **Permissions** (`.claude/settings.json`): safe defaults with deny list for destructive patterns
|
||||
|
||||
This file is the project's persistent memory. Claude Code reads it
|
||||
at the start of every session. You can add notes, preferences, and
|
||||
context here. Unlike OpenClaw's vector-search memory, Claude Code
|
||||
uses a file hierarchy:
|
||||
## Project structure
|
||||
|
||||
- `CLAUDE.md` (this file) - project-level instructions
|
||||
- `~/.claude/CLAUDE.md` - global personal instructions
|
||||
- `.claude/settings.json` - permissions and tool configuration
|
||||
```
|
||||
examples/ 13 numbered examples, each with a prompt.md
|
||||
security/ Permission modes, Auto Mode, hooks, NemoClaw comparison
|
||||
memory/ How cross-session memory works
|
||||
automation/ Cron, launchd, /loop, /schedule
|
||||
messaging/ Channels (iMessage, Telegram, Discord), Slack, Dispatch
|
||||
browser/ Playwright MCP setup
|
||||
cowork-integration/ How Code + Cowork + Dispatch replicate OpenClaw
|
||||
pipeline-output/ Output from example 10 (full pipeline)
|
||||
briefings/ Output from daily-briefing skill
|
||||
```
|
||||
|
||||
## Convention
|
||||
## Memory
|
||||
|
||||
- All examples are self-contained. No dependencies to install.
|
||||
- Hooks use bash. They work on macOS and Linux.
|
||||
- MCP config in `.mcp.json` uses Playwright (browser automation).
|
||||
Session state and notes go in `memory/MEMORY.md`.
|
||||
This file (CLAUDE.md) is for instructions. MEMORY.md is for state.
|
||||
|
||||
## Rules for this project
|
||||
|
||||
- This is a demo repo. Do not add dependencies or build steps.
|
||||
- Keep examples self-contained. Each should work independently.
|
||||
- All output files go in `pipeline-output/` or `briefings/`.
|
||||
- Do not modify files in `security/` or `hooks/` without reviewing
|
||||
the security implications.
|
||||
|
|
|
|||
|
|
@ -14,9 +14,9 @@ Here is exactly what to do.
|
|||
|
||||
## Step 1: Make Claude Code know you (30 minutes)
|
||||
|
||||
Open `CLAUDE.md` and replace the demo content with your own
|
||||
context. This is the most important file in the entire setup.
|
||||
Claude reads it at the start of every session.
|
||||
Open `CLAUDE.md` in the project root and replace the demo content
|
||||
with your own context. This is the most important file in the entire
|
||||
setup. Claude reads it at the start of every session.
|
||||
|
||||
Write it like a briefing for a capable new colleague on their
|
||||
first day:
|
||||
|
|
@ -133,6 +133,13 @@ always-on, but covers most situations.
|
|||
Skills are what transform Claude Code from "general AI
|
||||
assistant" into "my assistant that knows how I work."
|
||||
|
||||
### Important: skill file format
|
||||
|
||||
Every skill file needs YAML frontmatter between `---` markers at the top.
|
||||
Without this, Claude Code will not recognize it as a skill. The `name` field
|
||||
is what you type after `/` to run it. The `description` field helps Claude
|
||||
decide when to suggest it.
|
||||
|
||||
### Example: Weekly status report
|
||||
|
||||
Create `.claude/skills/weekly-status.md`:
|
||||
|
|
|
|||
15
README.md
15
README.md
|
|
@ -12,7 +12,7 @@ Companion repo for the article
|
|||
OpenClaw has 247K GitHub stars and 22 major capabilities. It is the
|
||||
fastest-growing open-source project in history. This repo shows that
|
||||
Claude Code's ecosystem (Code + Cowork + Dispatch) covers 21 of
|
||||
those 22, with 12 full matches and 9 different approaches. One gap
|
||||
those 22, with 13 full matches and 8 different approaches. One gap
|
||||
remains: Canvas/A2UI.
|
||||
|
||||
This is not a theoretical comparison. Clone this repo, open Claude
|
||||
|
|
@ -23,7 +23,8 @@ Code, and try each example yourself.
|
|||
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) v2.1.86+
|
||||
- Node.js 18+ (only needed for Playwright MCP)
|
||||
- A terminal (macOS or Linux)
|
||||
- For Computer Use: Claude Code Desktop app + macOS
|
||||
- For Computer Use (example 11): Claude Code Desktop app + macOS + Pro or Max plan
|
||||
- For Auto Mode (example 13): Team plan or higher (research preview)
|
||||
- For Dispatch: Claude mobile app (iOS/Android)
|
||||
|
||||
No npm install. No Docker. No build step.
|
||||
|
|
@ -52,6 +53,9 @@ Then try:
|
|||
Paste the prompt from examples/01-agent-runtime/prompt.md
|
||||
```
|
||||
|
||||
If you see Claude start searching the web and writing a file, it works.
|
||||
Each example includes an "Expected Output" section so you know what to look for.
|
||||
|
||||
## What is in this repo
|
||||
|
||||
### Working configuration
|
||||
|
|
@ -97,12 +101,17 @@ Paste the prompt from examples/01-agent-runtime/prompt.md
|
|||
Each example has a self-contained prompt you can paste directly
|
||||
into Claude Code.
|
||||
|
||||
**Recommended path:** Examples 01-09 are independent and work in any order.
|
||||
Example 10 combines all of them into a single pipeline. Examples 11-13 require
|
||||
additional setup (Desktop app, specific subscription plans) and are documented
|
||||
separately.
|
||||
|
||||
## The feature map
|
||||
|
||||
See [feature-map.md](feature-map.md) for the complete 22-row
|
||||
comparison table with verdicts and version requirements.
|
||||
|
||||
**Summary:** 12 full match, 9 different approach, 1 gap.
|
||||
**Summary:** 13 full match, 8 different approach, 1 gap.
|
||||
|
||||
## The broader ecosystem
|
||||
|
||||
|
|
|
|||
0
briefings/.gitkeep
Normal file
0
briefings/.gitkeep
Normal file
|
|
@ -1,10 +1,17 @@
|
|||
# Cowork Integration: The Full OpenClaw Alternative
|
||||
|
||||
Claude Code alone covers 55% of OpenClaw features with a full
|
||||
match and 41% with a different approach. But Claude Code is just
|
||||
Claude Code alone covers 59% of OpenClaw features with a full
|
||||
match and 36% with a different approach. But Claude Code is just
|
||||
one product in Anthropic's ecosystem. Together, Claude Code +
|
||||
Cowork + Dispatch get you closer to 95% of what OpenClaw does.
|
||||
|
||||
**What are Cowork and Dispatch?**
|
||||
- [Claude Cowork](https://claude.ai/cowork) is Anthropic's desktop agent for non-developers.
|
||||
It can control your screen, connect to apps (Slack, Google, Notion), and run scheduled tasks.
|
||||
- [Dispatch](https://claude.ai/dispatch) is the mobile app for sending tasks to your desktop
|
||||
agent from your phone. Think of it as texting your computer.
|
||||
- Both are part of the Claude Max subscription.
|
||||
|
||||
## The ecosystem
|
||||
|
||||
```
|
||||
|
|
|
|||
|
|
@ -39,6 +39,35 @@ confirmation between steps unless it hits something ambiguous.
|
|||
|
||||
---
|
||||
|
||||
## Expected Output
|
||||
|
||||
After 30-60 seconds, you should see a new file `research-output.md` in the
|
||||
project root. It will look something like this (content varies by month):
|
||||
|
||||
```markdown
|
||||
# AI Frameworks Released This Month
|
||||
|
||||
## 1. ExampleFramework
|
||||
- **Released:** March 12, 2026
|
||||
- **GitHub:** https://github.com/example/framework (4,200 stars)
|
||||
- **What it solves:** Simplifies multi-agent orchestration for Python developers.
|
||||
- **Verdict:** Worth watching. Growing fast with strong community momentum.
|
||||
|
||||
## 2. ...
|
||||
|
||||
## Verdict
|
||||
1. ExampleFramework - most practical for production use
|
||||
2. ...
|
||||
```
|
||||
|
||||
**How you know it worked:**
|
||||
- A file called `research-output.md` exists in the project root
|
||||
- It contains 3 frameworks with star counts and URLs
|
||||
- It ends with a ranked Verdict section
|
||||
- You saw WebSearch and WebFetch tool calls streaming in the terminal
|
||||
|
||||
---
|
||||
|
||||
## Why This Matters
|
||||
|
||||
This is the agent loop in action: plan, execute, observe, repeat. The same
|
||||
|
|
|
|||
|
|
@ -38,6 +38,34 @@ Claude Code will:
|
|||
|
||||
---
|
||||
|
||||
## Expected Output
|
||||
|
||||
You should see Claude use 5 tool calls in sequence. The final output
|
||||
includes a directory tree and file contents:
|
||||
|
||||
```
|
||||
project-scaffold/package.json
|
||||
project-scaffold/README.md
|
||||
project-scaffold/.gitignore
|
||||
```
|
||||
|
||||
And the package.json contents:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "my-project",
|
||||
"version": "0.1.0",
|
||||
"description": "A scaffolded project created by Claude Code"
|
||||
}
|
||||
```
|
||||
|
||||
**How you know it worked:**
|
||||
- A `project-scaffold/` directory exists with 3 files inside
|
||||
- You saw Bash (mkdir), Write (x3), Bash (find), and Read tool calls
|
||||
- No permission prompts appeared for these safe operations (they are pre-approved in settings.json)
|
||||
|
||||
---
|
||||
|
||||
## Why This Matters
|
||||
|
||||
Shell execution and file I/O are the foundation of every automation. Claude Code
|
||||
|
|
|
|||
|
|
@ -48,6 +48,35 @@ Claude Code will:
|
|||
|
||||
---
|
||||
|
||||
## Expected Output
|
||||
|
||||
Claude creates `memory/project-notes.md` and then explains how memory works.
|
||||
The file will look like:
|
||||
|
||||
```markdown
|
||||
# March 26, 2026
|
||||
|
||||
- This is a companion repo comparing OpenClaw and Claude Code capabilities
|
||||
- It contains 13 examples, agents, skills, hooks, and documentation
|
||||
- The project maps 22 OpenClaw features to Claude Code equivalents
|
||||
|
||||
Memory system demonstrated successfully.
|
||||
```
|
||||
|
||||
Claude will then explain something like:
|
||||
|
||||
> "This file is inside the `memory/` directory, which is referenced in
|
||||
> CLAUDE.md. Because Claude Code loads CLAUDE.md at every session start,
|
||||
> and CLAUDE.md mentions the memory directory, files here persist across
|
||||
> sessions without any extra setup."
|
||||
|
||||
**How you know it worked:**
|
||||
- `memory/project-notes.md` exists and contains today's date
|
||||
- The three bullets accurately summarize what CLAUDE.md says
|
||||
- Claude's explanation mentions the CLAUDE.md hierarchy
|
||||
|
||||
---
|
||||
|
||||
## Why This Matters
|
||||
|
||||
OpenClaw uses SQLite-vec for semantic memory search across sessions. Claude Code
|
||||
|
|
|
|||
|
|
@ -51,6 +51,36 @@ Each entry has the format: `[timestamp] TOOL: bash | STATUS: blocked | CMD: rm -
|
|||
|
||||
---
|
||||
|
||||
## Expected Output
|
||||
|
||||
Claude will first explain what it expects the hook to do, then attempt the
|
||||
command. You should see something like:
|
||||
|
||||
```
|
||||
I expect the PreToolUse hook (hooks/pre-tool-use.sh) to intercept this
|
||||
command because it matches the "rm -rf" pattern in the blocked list...
|
||||
|
||||
[Claude attempts: rm -rf /tmp/test-deletion-target]
|
||||
[Hook blocks the command]
|
||||
|
||||
The command was blocked by the PreToolUse hook. The hook matched "rm -rf"
|
||||
in the command string and returned exit code 2 with a block decision.
|
||||
```
|
||||
|
||||
The audit log (`hooks/audit.log`) will contain an entry like:
|
||||
|
||||
```
|
||||
[2026-03-26T10:15:23] TOOL: bash | STATUS: blocked | CMD: rm -rf /tmp/test-deletion-target
|
||||
```
|
||||
|
||||
**How you know it worked:**
|
||||
- The `rm -rf` command was NOT executed (nothing was deleted)
|
||||
- Claude reported the hook blocked it
|
||||
- `hooks/audit.log` exists and has at least one entry
|
||||
- The entry shows STATUS: blocked
|
||||
|
||||
---
|
||||
|
||||
## Architecture Difference from OpenClaw
|
||||
|
||||
OpenClaw sandboxes via Docker: the agent runs inside a container that limits
|
||||
|
|
|
|||
|
|
@ -62,6 +62,45 @@ typically completes in 2-4 minutes depending on web fetch latency.
|
|||
|
||||
---
|
||||
|
||||
## Expected Output
|
||||
|
||||
The pipeline takes 2-4 minutes. You will see agent invocations streaming:
|
||||
|
||||
1. **Researcher agent** runs WebSearch and WebFetch (30-60 seconds)
|
||||
2. **Writer agent** produces a ~400-word draft (15-30 seconds)
|
||||
3. **Reviewer agent** critiques the draft (15-30 seconds)
|
||||
4. **Revision** if needed (15-30 seconds)
|
||||
5. **File writes** to pipeline-output/ and memory/
|
||||
|
||||
When complete, two new files exist:
|
||||
|
||||
`pipeline-output/permission-modes.md` (the article):
|
||||
```markdown
|
||||
# How Claude Code Handles Permission Modes
|
||||
|
||||
Claude Code provides three permission modes that control how much
|
||||
autonomy the agent has...
|
||||
[~400 words with accurate technical content]
|
||||
```
|
||||
|
||||
`memory/pipeline-log.md` (the execution log):
|
||||
```markdown
|
||||
## Pipeline Run - March 26, 2026
|
||||
|
||||
- **Topic:** How Claude Code handles permission modes
|
||||
- **Word count:** 412
|
||||
- **Issues:** None
|
||||
- **Duration:** ~3 minutes
|
||||
```
|
||||
|
||||
**How you know it worked:**
|
||||
- Both files exist in the expected directories
|
||||
- The article is accurate (check against `security/permission-modes-explained.md`)
|
||||
- The pipeline log has today's date and a word count
|
||||
- You saw three distinct agent invocations in the terminal
|
||||
|
||||
---
|
||||
|
||||
## Why This Matters
|
||||
|
||||
This is what Claude Code looks like as an actual agent platform, not a
|
||||
|
|
|
|||
0
pipeline-output/.gitkeep
Normal file
0
pipeline-output/.gitkeep
Normal file
Loading…
Add table
Add a link
Reference in a new issue