Document all commands: list-windows, get-text, find-element,
query-state, benchmark. Add common flags section.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- benchmark.py: measures coverage and query performance
- Documents coverage across Ghostty, waybar, vicinae
- Key finding: Firefox not visible to AT-SPI without explicit config
- Query performance: ~1.7s to find buttons across all apps
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add opt-in debug logging to all scripts:
- set_debug() and log_debug() in common.py
- --debug flag in all 4 scripts
- Exception handlers now log context via log_debug()
Keeps broad exception catching (needed for AT-SPI stale objects)
but adds visibility when debugging.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Consolidates duplicate find_elements() from find-element.py and query-state.py.
Shared function returns raw accessibles; callers map through their own info extractors.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Consolidates duplicate find_windows() from get-text.py and find-element.py
into a shared module. Also adds get_all_windows() helper.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use printf %q to escape arguments before passing through nix-shell --run.
Fixes handling of arguments containing spaces or special characters.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Detailed state querying for UI elements:
- Find focused element with --focused
- Show all state flags with descriptions (--all-states)
- Reports actions, value ranges, text content, caret position
- Human-readable state descriptions
Completes ui-query skill (list-windows, get-text, find-element, query-state)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Search AT-SPI tree for elements by role and/or name:
- Filter by role (button, label, text, menu-item, etc.)
- Filter by name substring (case-insensitive)
- Scope to specific window or app
- Returns position, states, path context
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Extracts text content from windows via AT-SPI Text interface:
- Match windows by name pattern or app name
- Traverses accessibility tree to find text elements
- Outputs hierarchical text structure or JSON
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Initial AT-SPI integration for semantic UI access:
- list-windows.py: enumerate windows via accessibility tree
- Wrapper script handles nix dependencies (pyatspi, pygobject3)
- Outputs table or JSON with window geometry and states
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Robust rollback on spawn failure (branch + worktree cleanup)
- Error messages include step context
- Default base branch changed to main
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix rollback to handle partial branch creation (skills-yylq)
- Pre-compute branch/worktree names before createWorktree
- Use gitBranchExists() and dirExists() for robust cleanup
- Add step context to error messages (skills-ux6h)
- Track currentStep through spawn process
- Error now shows which step failed
- Deduplicate success output block (skills-qjln)
- Consolidated to single block with conditional review line
- Simplify use-skills.sh auth symlink (skills-475o)
- One-liner with || instead of nested if
- Fix inconsistent default branch in git.nim (skills-fext)
- Changed default from "origin/integration" to "main"
Closes skills-yylq, skills-ux6h, skills-qjln, skills-475o, skills-fext
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change default base branch from origin/integration to main
- Add --noFetch flag to skip git fetch (for offline/sandbox use)
- Add try/except with rollback on spawn failure
- Improve error message for missing review-gate
- Add Codex auth.json symlink to use-skills.sh
- Include worker orchestration AAR from 2026-01-13
Addresses pain points from worker-orchestration-aar-2026-01-13.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- use-skills.sh: symlink to $CODEX_HOME/skills when CODEX_HOME is set
- docs: update PER-REPO-SKILLS.md and RFC-SKILLS-MANIFEST.md with Codex flow
- hq: add model configuration section (sonnet-4.5, Claude Max)
- hq: update launch commands with explicit --model flag
Closes skills-legi
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add codexSkills option for deploying skills to ~/.codex/skills/
- Follows same pattern as claudeCodeSkills and openCodeSkills
- Dotfiles can now configure: services.ai-skills.codexSkills = [ "worklog" "hq" ];
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add releases/worker_0.1.0_linux_amd64.tar.gz (327KB)
- Update pkgs/worker/default.nix with real SHA256 hash
- Add clear dotfiles integration instructions
- Un-ignore releases/ for distribution via git forge
Dotfiles can now fetch worker binary from:
https://git.clarun.xyz/dan/skills/raw/branch/master/releases/worker_0.1.0_linux_amd64.tar.gz
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add docs/releasing-worker.md with build and release process
- Add pkgs/worker/default.nix template for nix packaging
- Add skills/hq/README.md with installation and deployment guide
- Update skills/hq/SKILL.md with detailed requirements table
- Add hq and review-gate to skills.nix
- Add releases/ to .gitignore
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Cross-Agent Compatibility section to SKILL.md
- Document concrete launch commands per agent type (Claude, OpenCode, Codex)
- Add worker-system.md template for worker agent prompts
- Add hq-status script for unified status view
- Simplify by documenting patterns rather than building --agent flag
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Scaffold for agent capability benchmark harness (skills-qng9):
- docs/specs/scenario-schema.md: YAML schema for test scenarios
- tests/scenarios/: Easy, medium, hard example scenarios
- tests/fixtures/: Python fixtures for testing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- worktreePath() now returns absolute path using findMainRepoDir()
- Fixes 'cannot change to worktrees/...' error from inside worktree
- test-worker.sh now checks sqlite3 is available before running
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>