Introduce CLI-Matrix — curated multi-CLI workflow matrices that agents can
install in one command. The video-creation matrix bundles 11 CLIs across 8
production stages (AI video gen, capture, audio, voice/TTS, music, NLE
editing, captions, thumbnails).
Each stage now exposes a goal, alternative approaches (Python libs, cloud
APIs, native commands), and skill_search_hints that encourage agents to
dynamically discover relevant skills via `npx skills search` rather than
relying on hard-coded tool lists.
Key changes:
- matrix_registry.json: extended stage schema with goal, alternatives,
skill_search_hints fields
- cli-hub matrix list/search/info/install commands
- matrix_skill.py: renders dynamic SKILL.md with stage tooling overview,
install status, and aggregated discovery commands
- Fixed brittle parents[2] repo root detection with git-based lookup
- 85 tests passing (10 new)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Page now runs a HogQL countIf query directly against PostHog on load
and every 60s, using a read-only personal API key scoped to query:read
on project 393992. Numbers are baseline (Umami cutover) + live increment.
- Remove the static snapshot pipeline: delete
.github/scripts/update_hub_analytics_stats.py,
docs/hub/analytics-stats.json, and the Generate hub analytics stats step
and path trigger in deploy-pages.yml.
- Drop the JS static-fallback branch that read analytics-stats.json.
- Switch cli-hub analytics client from Umami to PostHog (us.i.posthog.com),
with agent/human classification derived from env vars and parent-process
names, and persistent analytics id at ~/.cli-hub/.analytics_id.
- Add daily deploy-pages step running .github/scripts/update_hub_analytics_stats.py
to pull PostHog totals into docs/hub/analytics-stats.json.
- Redesign docs/hub footer analytics panel (index.html + index-modern.html)
as a compact Apple/OpenAI-style card: live eyebrow, total, 2px ratio bar,
and inline Human/Agent split with percentages computed client-side.
- Expand cli-hub tests to cover the new analytics context fields and
provider switch.