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>
- Extract renderStatusTable() from nested proc in status()
- Add column width constants (ColTask, ColState, etc.)
- Use parseEnum for heartbeat status instead of case statement
- Return bool from startGlobalHeartbeat() to indicate if started
- Remove unused getBranchStatus() function (dead code)
Closes: skills-y76g, skills-f8yd, skills-audh, skills-hx1n, skills-827e
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add StaleLevel enum (ok, WARN, STALE, DEAD) to types.nim
- Extract computeStaleLevel() as single source of truth
- Simplify isStale() and staleLevel() to use computeStaleLevel()
- Refactor transition() and transitionToFailed() to use withTransaction
- Add schema migration infrastructure:
- CurrentSchemaVersion constant
- Migrations sequence for incremental upgrades
- getSchemaVersion() and runMigrations() procs
- initSchema() now runs pending migrations
Closes: skills-dtk, skills-8fd, skills-9ny
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>