Skip to content

Add activity patterns dashboard#19

Open
tkellogg wants to merge 2 commits intomainfrom
add-activity-patterns
Open

Add activity patterns dashboard#19
tkellogg wants to merge 2 commits intomainfrom
add-activity-patterns

Conversation

@tkellogg
Copy link
Owner

@tkellogg tkellogg commented Mar 4, 2026

Summary

  • New builtin skill (activity-patterns) + script that computes embedding-free conversation metrics from events.jsonl
  • Metrics: Quantity Ratio (QR), effective sources, per-source volume breakdown — pure character counts and message counts, no external APIs
  • QR uses labeled regions (absorbing/conversational/productive/chatty/monologue) instead of color-coded health judgments, per yesterday's design conversation
  • Also fixes __pycache__ traversal bug in _iter_files that caused UnicodeDecodeError when .pyc files existed in builtin skill directories (affected all tests)

What's in it

  • open_strix/builtin_skills/scripts/activity_patterns.py — 300 lines. CLI: --text-only for text report, omit for matplotlib dashboard. --repo-root and --days configurable.
  • open_strix/builtin_skills/activity-patterns/SKILL.md — Explains metrics, QR regions, per-agent calibration guidance
  • open_strix/builtin_skills/__init__.py — 2-line fix: skip __pycache__ in _iter_files
  • tests/test_activity_patterns.py — 17 tests (DayMetrics, event parsing, daily computation, text report)

Tested against real data

  • Motley: QR 6.39 (monologue) → 2.17 (productive) over 2 days. Only Tim as source.
  • Verge: QR 0.20 (absorbing) on Mar 1 — confirmed Tim's hypothesis that adversary agents sit in absorbing mode.

Test plan

  • 17 new tests passing
  • 179 total suite passing (1 pre-existing uv not on PATH failure)
  • Validated against Motley and Verge real events.jsonl data
  • Tim deploys and tests with Motley/Verge

🤖 Generated with Claude Code

claude added 2 commits March 4, 2026 04:25
New builtin skill + script that computes QR (quantity ratio), effective
sources, and per-source volume breakdown from events.jsonl. No external
APIs or embeddings — pure character counts and message counts.

Includes labeled QR regions (absorbing/conversational/productive/chatty/
monologue) instead of color-coded health judgments per Tim's design.

Also fixes __pycache__ traversal bug in builtin skill discovery that
caused UnicodeDecodeError when .pyc files existed in skill directories.

17 new tests, 179 total passing (1 pre-existing failure: uv not on PATH).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Main added .startswith(".") check alongside __pycache__. Keep both.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants