Chalk Labs
Need help deploying reflection?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/maxesisn-reflection
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/reflection
What's inside
- Skill name
reflection- Description
- 自主反思与行动——静默处理能处理的,把该 Max 决策的记上面板
- License
- MIT
- Instructions
- 348 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
- Instructions call the network
- Instructions read files in your home folder (~/.ssh, ~/.aws…)
Files (2)
- SKILL.md
- board.py · scripts/
SKILL.md (first lines)
# Reflection
**核心原则:默认静默,默认动手;本地 Mac 所有事都在我的授权范围内。**
Max 很忙。我的工作是替他处理能处理的事,把他真正需要决策的事写进待决策面板。
不要在输出末尾写"本次没有对外发送消息"之类的 meta 自述——cron 已经 silent,说了没人看。
---
## 第 0 步:读取待决策面板
面板靠一个 Joplin note 承载,辅助脚本 `skills/reflection/scripts/board.py` 封装了所有操作,直接用:
```bash
./skills/reflection/scripts/board.py read
```
脚本会:读 `app_config.reflection:pending_board_note_id` 拿到 note id,用 `secrets/joplin.env` 的 token 拉 body。失败会非零退出,记录告警后继续反思,不中止。
**读到 body 后**:识别"待决策"区下已存条目,记下它们的标题(`### YYYY-MM-DD · 主题` 行),用于本次反思结束前的状态审查(见第 2 步第 5 条)。
### Joplin Web Clipper 卡死的恢复(已知 recurring 模式)
`board.py read` 报 `failed to fetch note: timed out` + `curl -m 10 http://127.0.0.1:41184/ping` 也 hang 时,**不是网络问题,是 Joplin 主线程被某个 modal 阻塞**——最常见是升级提示框("有更新可用"),偶尔也有同步冲突弹窗。Web Clipper 服务跑在 Electron 主进程,native dialog 一弹,HTTP server accept 但不处理请求。
恢复(A 级,本机操作):
1. `desktop activate Joplin` + `desktop screenshot` 看是否有阻塞 modal
2. **有 modal**:找到"取消"按钮坐标,`desktop click` 关掉。立刻 `curl /ping` 验证恢复
3. **无 modal 但端口仍 hang**:`pkill -KILL -f /Applications/Joplin.app` → `open -a Joplin` → 等 15s → 重新截图(重启后大概率会再弹同一个升级提示),按上一步处理
4. 如果是升级提示,把版本号写进 skippedVersions 防止 12h 后再弹:
```bash
sqlite3 "$HOME/.config/joplin-desktop/database.sqlite" \
"UPDATE key_values SET value='[\"<旧已跳过版本>\",\"<新版本号>\"]' WHERE key='updateCheck::skippedVersions'"
```
旧值用 `SELECT value FROM key_values WHERE key='updateCheck::skippedVersions'` 先读出来再合并
升级 Joplin 本身是选型决策,**永远 B 级**,不要替 Max 升。
---
## 第 1 步:数据采集(感知层)
依次执行以下扫描,任一失败跳过该路即可:
### 1.1 MaxClaw 基线
```bash
cd /path/to/maxclaw && git log --oneline -10
git status --short # 长期 dirty 也是信号
sqlite3 data/maxclaw.db "SELECT name, datetime(last_run_at/1000,'unixepoch','localtime') FROM cron_jobs ORDER BY last_run_at DESC LIMIT 8"
sqlite3 data/maxclaw.db "SELECT event_type, message, created_at FROM sub_agent_events WHERE event_type IN ('failed','timeout') AND created_at > (strftime('%s','now')*1000 - 86400000) ORDER BY created_at DESC LIMIT 10"
sqlite3 data/maxclaw.db "SELECT status, error_message, count(*) FROM sub_agent_tasks WHERE status IN ('failed','timeout') AND started_at > (strftime('%s','now')*1000 - 7*86400000) GROUP BY error_message ORDER BY count(*) DESC LIMIT 10"
```
### 1.2 Tool 失败扫描(近 72h,关键新增)
```bash
sqlite3 data/maxclaw.db "
SELECT datetime(created_at/1000,'unixepoch','localtime') as t, substr(content,1,300)
FROM chunks
WHERE role='tool'
AND created_at > (strftime('%s','now')*1000 - 72*3600*1000)
-- 只看真正的 tool result 顶层失败/异常信号,避免把文件读取/search_memory/上一轮 reflection 扫描结果里的嵌套文本误判为新失败
AND content NOT LIKE '{"path":"%/skills/reflection/SKILL.md"%'
AND content NOT LIKE '{"success":true,"query":%'
AND content NOT LIKE '%## tool failures 72h%'
AND (
content LIKE '{"success":false,%'
OR content LIKE '{"exitCode":1,%' OR content LIKE '{"exitCode": 1,%'
OR content LIKE '{"exitCode":2,%' OR content LIKE '{"exitCode": 2,%'
OR content LIKE '{"exitCode":127,%' OR content LIKE '{"exitCode": 127,%'
OR (content LIKE '{"success":true,"device":%' AND (content LIKE '%command not found%' OR content LIKE '%Permission denied%'))
)
ORDER BY created_at DESC LIMIT 40
"
```
**分析要点**:
- 忽略**探索性失败**(一次性的 `ls 不存在的路径`、grep 没命中之类,这是正常探索行为)
- 聚焦**反复出现的同一错误**(同一命令在不同 session 失败 ≥ 2 次 → 系统性问题)
- 聚焦**依赖缺失**(command not found)和**权限异常**(Permission denied)
### 1.3 未竟之事扫描(近 14 天)
```bash
sqlite3 data/maxclaw.db "
SELECT datetime(created_at/1000,'unixepoch','localtime') as t, session_id, substr(content,1,300)
FROM chunks
WHERE created_at > (strftime('%s','now')*1000 - 14*86400000)
AND role IN ('user','assistant')
AND (content LIKE '%TODO%' OR content LIKE '%待修%' OR content LIKE '%暂时%'
OR content LIKE '%临时%' OR content LIKE '%之后再%' OR content LIKE '%后面再%'
OR content LIKE '%先这样%' OR content LIKE '%下次%' OR content LIKE '%待验证%'
OR content LIKE '%等有空%' OR content LIKE '%稍后%')
ORDER BY created_at DESC LIMIT 30
"
```
**分析要点**:区分"一次性口头话"和"真 commitment"。判断依据:同一主题反复出现 / Max 明确说"记一下"/"回头做"。
### 1.4 外部依赖 health check
```bash
# 仅检查本机需要的 CLI;远端服务(qBittorrent/Joplin 等)走下面的 API 拨号
for bin in copilot codex gh ssh ollama node bun python3 sqlite3 curl jq; do
if ! which "$bin" >/dev/null 2>&1; then
echo "MISSING: $bin"
fi
done
```
关键 API 拨号(可选,失败不算异常):
```bash
curl -sf -m 5 "http://127.0.0.1:41184/ping" >/dev/null || echo "DOWN: joplin-webclipper"
curl -sf -m 5 "https://vikunja.example.com/api/v1/info" >/dev/null || echo "DOWN: vikunja"
```
对比上一次 health check 结果(存在 `app_config.reflection:deps_last_snapshot` 的 JSON)。有变化才进下一步分析。结束时更新这个 snapshot。From maxesisn/maxclaw-oss, MIT.
More from maxesisn/maxclaw-oss
- 0.526score
knowledge-base
maxesisn
通用知识库构建 & 查询工具。给定一个包含 PDF/Sphinx-HTML 的原始文档文件夹,批量转成可 grep 的 Markdown、抽符号倒排、生成 LLM 摘要 sidecar 和 manifest 聚合索引。Agent 进入陌生领域时先 `ls ~/.maxclaw/kb/` 看有无相关知识库,再按"L3…
SkillBFreshness: BClaude Code +9 - 0.521score
pinned-notes
maxesisn
显式标记当前对话中需要永久保留的关键事实(必要开支、风险偏好、核心约束等),让它在 session compact/rollover 后仍存活。Agent 主动判断"哪些信息长期重要"调用,跨 session 通过 6 字符短 pin_id 引用。单 session 上限 25 条。
SkillBFreshness: BClaude Code +9 - 0.521score
seek-advice
maxesisn
跨家 LLM 顾问 panel——给一个最小化 scenario,并行 dispatch 给 3-5 个不同 vendor 的模型,每个模型同时跑联网+离线两份,对抗单家族 prior 高度相关导致的 anchoring 偏差。用于复杂诊断、重要技术决策、自己推理 ≥2 小时未收敛兜底。
SkillBFreshness: BClaude Code +9 - 0.521score
web-search
maxesisn
搜索互联网获取实时信息,通过自建 search-proxy 聚合 Tavily/Brave/Jina 三家付费 provider(带配额管理 + 失败 fallback 到 SearXNG)。适用于:查询新闻、实时价格、技术文档、不在训练数据中的信息。
SkillBFreshness: BClaude Code +9 - 0.521score
code-intelligence
maxesisn
代码仓库智能问答工具(repo_symbol_answer v1)。Tree-sitter AST 召回 function/class/method/interface/variable 定义 + ripgrep 词法搜索 + reranker 精排 + palette:mid LLM 综合,输出含…
SkillBFreshness: BClaude Code +9 - 0.519score
channel-notes
maxesisn
Channel-scoped working notes — a short Markdown document per channel for decisions, deferred items, open questions, and next steps.
SkillBFreshness: BClaude Code +9 - 0.518score
workdir
maxesisn
声明当前 channel 正在使用的工作目录(可多个),显示在右侧 Workspace 卡并在压缩后可查回。多文件任务时用 set_workdirs 钉下工作目录,避免文件散落 /tmp 或每次重说。仅记录+展示,不改进程 cwd。
SkillBFreshness: BClaude Code +9 - 0.518score
wake-channel
maxesisn
跨 channel agent 通信原语——通过 wake_channel "按门铃"通知另一个 channel 的 agent 有新状态变化
SkillBFreshness: BClaude Code +9 - 0.518score
async-runtime
maxesisn
需要未来唤醒、后台等待、跨 channel 通知或长期订阅时的调度选择;覆盖 cron、后台 subagent、notification、channel_subscribe、wake_channel。
SkillBFreshness: BClaude Code +9 - 0.517score
notifications
maxesisn
持久化事件通知层 + topic-based pub-sub。所有 cron / sub-agent / mail / 价格异动等事件写入 SQLite 并按 channel 订阅 fan-out。channel 通过 channel_subscribe 声明关心哪些 topic;同时所有事件无条件 union…
SkillBFreshness: BClaude Code +9 - 0.515score
memory
maxesisn
主动搜索、核查和更新记忆系统——查询 Facts、Episodes、Chunks 三层记忆,替换过时事实
SkillBFreshness: BClaude Code +9 - 0.515score
cron
maxesisn
管理定时任务(cron jobs),支持添加、删除、列出、立即执行
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 9, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/maxesisn/maxclaw-oss
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from maxesisn
- 0.526score
knowledge-base
maxesisn
通用知识库构建 & 查询工具。给定一个包含 PDF/Sphinx-HTML 的原始文档文件夹,批量转成可 grep 的 Markdown、抽符号倒排、生成 LLM 摘要 sidecar 和 manifest 聚合索引。Agent 进入陌生领域时先 `ls ~/.maxclaw/kb/` 看有无相关知识库,再按"L3…
SkillBFreshness: BClaude Code +9 - 0.521score
code-intelligence
maxesisn
代码仓库智能问答工具(repo_symbol_answer v1)。Tree-sitter AST 召回 function/class/method/interface/variable 定义 + ripgrep 词法搜索 + reranker 精排 + palette:mid LLM 综合,输出含…
SkillBFreshness: BClaude Code +9 - 0.521score
pinned-notes
maxesisn
显式标记当前对话中需要永久保留的关键事实(必要开支、风险偏好、核心约束等),让它在 session compact/rollover 后仍存活。Agent 主动判断"哪些信息长期重要"调用,跨 session 通过 6 字符短 pin_id 引用。单 session 上限 25 条。
SkillBFreshness: BClaude Code +9 - 0.521score
seek-advice
maxesisn
跨家 LLM 顾问 panel——给一个最小化 scenario,并行 dispatch 给 3-5 个不同 vendor 的模型,每个模型同时跑联网+离线两份,对抗单家族 prior 高度相关导致的 anchoring 偏差。用于复杂诊断、重要技术决策、自己推理 ≥2 小时未收敛兜底。
SkillBFreshness: BClaude Code +9 - 0.521score
web-search
maxesisn
搜索互联网获取实时信息,通过自建 search-proxy 聚合 Tavily/Brave/Jina 三家付费 provider(带配额管理 + 失败 fallback 到 SearXNG)。适用于:查询新闻、实时价格、技术文档、不在训练数据中的信息。
SkillBFreshness: BClaude Code +9 - 0.519score
channel-notes
maxesisn
Channel-scoped working notes — a short Markdown document per channel for decisions, deferred items, open questions, and next steps.
SkillBFreshness: BClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get reflection running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
reflection skill. Agent Mart. https://agentmart.dev/skills/maxesisn-reflection (last updated 2026-10-24)