agent-check
FreeValidate custom agent file format and structure. Use after creating or editing an agent, before committing agent changes, or when an agent fails to load.
The English summary is being prepared. Showing the original description.
View and manage the runtime changelog for observability
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Status: Experimental — uses Claude Code PostToolUse hooks; the hook interface may change in future versions. If hooks don't fire, events can still be logged manually via auto-loop prompts.
Runtime observability changelog that records every change during a development session, so subagents can understand prior context and sessions can be recovered or debugged.
Automatically, via PostToolUse hooks, the changelog:
Events are stored as append-only JSONL at .director-mode/changelog.jsonl.
/changelog command/changelog # Recent 10 events
/changelog --summary # Statistics
/changelog --type test # Filter by event type
/changelog --list-archives # Show rotated changelogs
/changelog --export log.json
/changelog --archive # Manually archive current changelog
/changelog --clear # Clear current changelog
# Last 5 events
tail -n 5 .director-mode/changelog.jsonl | jq '.'
# All file changes
grep '"event_type":"file_' .director-mode/changelog.jsonl
# Count by type
jq -r '.event_type' .director-mode/changelog.jsonl | sort | uniq -c
{
"id": "evt_1705142400_12345",
"timestamp": "2025-01-13T10:30:00.000Z",
"event_type": "file_edit",
"agent": "hook",
"iteration": 3,
"summary": "file_edit: Login.tsx",
"files": ["src/components/Login.tsx"]
}
| Type | Source | Description |
|---|---|---|
file_write | Hook (Write) | File written via the Write tool |
file_edit | Hook (Edit) | File edited via the Edit tool |
test_pass | Hook (Bash) | Tests passing |
test_fail | Hook (Bash) | Tests failing |
test_run | Hook (Bash) | Tests ran, result undetermined |
commit | Hook (Bash) | Git commit made |
session_start | auto-loop | Session begins |
session_end | auto-loop | Session completes |
changelog_rotated | System | Changelog was rotated |
Configured in .claude/settings.local.json (the shipped template is hooks/settings-hooks.json):
{
"hooks": {
"PostToolUse": [
{ "matcher": "Write", "hooks": [{ "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/log-file-change.sh" }] },
{ "matcher": "Edit", "hooks": [{ "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/log-file-change.sh" }] },
{ "matcher": "Bash", "hooks": [{ "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/log-bash-event.sh" }] }
]
}
}
$CLAUDE_PROJECT_DIRkeeps paths portable (resolved at runtime by Claude Code).
| Script | Trigger | Events Logged |
|---|---|---|
log-file-change.sh | Write, Edit | file_write, file_edit |
log-bash-event.sh | Bash | test_pass, test_fail, test_run, commit |
Core helpers live in _lib-changelog.sh:
log_event "file_write" "Wrote Login.tsx" "hook" '["src/Login.tsx"]'
archive_changelog # move current changelog to a timestamped archive
clear_changelog # empty the current changelog
list_archives # list rotated changelogs
Two independent thresholds keep the changelog bounded. They are complementary, not contradictory:
| Trigger | Threshold | Who does it | When |
|---|---|---|---|
| Session-start archive | > 100 lines | /auto-loop init | At the start of each auto-loop session, so the new session begins with a fresh log |
| Runtime auto-rotation | > 500 lines (MAX_LINES) | _lib-changelog.sh (rotate_if_needed) | Continuously, as events are appended within a session |
On rotation the current file is moved to changelog.YYYYMMDD_HHMMSS.jsonl, a fresh changelog.jsonl is started, and a changelog_rotated event is logged:
.director-mode/
├── changelog.jsonl ← Current
├── changelog.20250113_103000.jsonl ← Archived
└── changelog.20250112_150000.jsonl ← Archived
| Aspect | Checkpoint | Changelog |
|---|---|---|
| Location | .auto-loop/checkpoint.json | .director-mode/changelog.jsonl |
| Purpose | Current state snapshot ("where am I now?") | Historical event stream ("how did I get here?") |
| Used by | Stop hook (continue/stop decision) | Subagents (context) |
| Format | Single JSON object | JSONL (append-only) |
| Persistence | Overwritten each iteration | Accumulated, then rotated |
Only one auto-loop session runs per project. Starting /auto-loop while a session is in_progress blocks with a prompt to use --resume (continue with the existing checkpoint + changelog) or --force (archive the old session, start fresh).
These legacy observability hooks ship as an explicit automation option. They
are absent from the default zero-hook install. After intentionally running
./install.sh --hooks automation, verify:
ls .claude/hooks/
# _lib-changelog.sh auto-loop-stop.sh log-bash-event.sh log-file-change.sh pre-tool-validator.sh
cat .claude/settings.local.json | jq '.hooks'
ls .claude/hooks/*.shcat .claude/settings.local.json | jq '.hooks' (the shipped template is hooks/settings-hooks.json)chmod +x .claude/hooks/*.shcat .auto-loop/checkpoint.json | jq '.status'
/auto-loop --force "New task"
/changelog --archive # manual archive
/changelog --clear # or clear
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Validate custom agent file format and structure. Use after creating or editing an agent, before committing agent changes, or when an agent fails to load.
The English summary is being prepared. Showing the original description.
Generate custom agent from template. Use when creating a new subagent from scratch, or scaffolding an agent file with correct frontmatter.
The English summary is being prepared. Showing the original description.
List all available agents (core, expert, self-evolving). Use when the user asks what agents are available or runs /agents.
The English summary is being prepared. Showing the original description.
TDD-based autonomous development loop with checkpoint recovery and observability changelog
The English summary is being prepared. Showing the original description.
Track development session events in a daily markdown changelog, including file changes, test results, and key decisions.
The English summary is being prepared. Showing the original description.
Verify Claude, Codex, and Grok availability plus Director guidance, relay, agents, and skills. Audit optional hooks only when selected. Use after installation or when a native surface misbehaves.
The English summary is being prepared. Showing the original description.