Commit graph

238 commits

Author SHA1 Message Date
dan 6c09bee2c4 docs(ui-query): add full command documentation
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>
2026-01-15 19:14:10 -08:00
dan ca98eec7a6 feat(ui-query): add AT-SPI benchmark script and results
- 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>
2026-01-15 19:13:28 -08:00
dan b48212e973 bd sync: 2026-01-15 15:39:13 2026-01-15 15:39:13 -08:00
dan 5f5675d1ca refactor(ui-query): improve exception handling with --debug flag
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>
2026-01-15 15:39:05 -08:00
dan ec6c81b436 bd sync: 2026-01-15 15:18:27 2026-01-15 15:18:27 -08:00
dan fedec9c46a refactor(ui-query): extract shared find_elements() to common.py
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>
2026-01-15 15:18:18 -08:00
dan 5a80055ed8 bd sync: 2026-01-15 14:54:20 2026-01-15 14:54:20 -08:00
dan bccf7514ce refactor(ui-query): extract shared find_windows() to common.py
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>
2026-01-15 14:54:11 -08:00
dan e428be1ae6 bd sync: 2026-01-15 14:23:49 2026-01-15 14:23:49 -08:00
dan f449c60c74 fix(ui-query): proper argument quoting in wrapper script
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>
2026-01-15 14:23:38 -08:00
dan 1875cbf751 bd sync: 2026-01-15 14:22:08 2026-01-15 14:22:08 -08:00
dan 82d92c6bc2 bd sync: 2026-01-15 14:19:46 2026-01-15 14:19:46 -08:00
dan 205e8b0dfa feat(ui-query): add query-state.py for element state inspection
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>
2026-01-15 14:19:37 -08:00
dan 6ed762ad05 feat(ui-query): add find-element.py for element search
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>
2026-01-15 14:17:37 -08:00
dan d3b24e91c7 bd sync: 2026-01-15 14:15:51 2026-01-15 14:15:51 -08:00
dan c876394460 feat(ui-query): add get-text.py for text extraction
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>
2026-01-15 14:15:46 -08:00
dan 0b0b6f49f9 bd sync: 2026-01-15 11:57:24 2026-01-15 11:57:24 -08:00
dan 6eee2be66e feat(skills): add ui-query skill with list-windows
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>
2026-01-15 11:57:03 -08:00
dan 49d75fb9ef bd sync: 2026-01-15 11:36:40 2026-01-15 11:36:40 -08:00
dan bf0998af89 bd sync: 2026-01-15 10:42:23 2026-01-15 10:42:23 -08:00
dan 68426ce108 bd sync: 2026-01-15 10:23:18 2026-01-15 10:23:18 -08:00
dan 5dd304615d release: worker v0.1.1 with spawn reliability fixes
- 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>
2026-01-15 10:23:13 -08:00
dan 29d23dfa53 bd sync: 2026-01-15 09:37:48 2026-01-15 09:37:48 -08:00
dan 48ec6cde83 fix(worker): address code review findings
- 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>
2026-01-15 09:37:37 -08:00
dan 9f096dea0d bd sync: 2026-01-15 09:29:41 2026-01-15 09:29:41 -08:00
dan 461c5ac148 fix(worker): improve spawn reliability and add noFetch flag
- 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>
2026-01-15 09:29:36 -08:00
dan d463fe58bb docs: add worklog for skills directory standardization 2026-01-14 19:18:25 -08:00
dan b0fe974831 bd sync: 2026-01-14 19:02:29 2026-01-14 19:02:29 -08:00
dan 48d2737699 refactor(skills): standardize directory structure (assets/ references/)
- Remove redundant 'skills/' subdirectories
- Rename 'templates/' to 'assets/' in worklog, template, review-gate, hq
- Move loose docs to 'references/' in niri-window-capture, spec-review
- Update SKILL.md and README.md paths
2026-01-14 19:02:08 -08:00
dan 2c0db1c911 bd sync: 2026-01-14 11:40:53 2026-01-14 11:40:53 -08:00
dan b87fe4c467 docs: Add missing skills to README and frontmatter to review-gate 2026-01-14 11:40:43 -08:00
dan 33e307daaa bd sync: 2026-01-14 11:40:40 2026-01-14 11:40:40 -08:00
dan 3cc7540c46 docs: add worklog for HQ deployment and Codex skills integration
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 06:56:49 -08:00
dan 06f5fafd1a bd sync: 2026-01-13 06:51:08 2026-01-13 06:51:08 -08:00
dan e6d777e589 feat: add Codex per-repo skills support
- 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>
2026-01-13 06:50:56 -08:00
dan 2969878553 feat: add Codex support to ai-skills module
- 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>
2026-01-13 05:58:56 -08:00
dan 84830fd5cb Merge feat/skills-zws1 2026-01-12 21:12:19 -08:00
dan 2177b10d50 Add hello world script 2026-01-12 21:11:49 -08:00
dan 119c240ad6 Update issue tracking 2026-01-12 21:11:41 -08:00
dan 04fcba0345 release: add worker v0.1.0 binary tarball
- 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>
2026-01-12 16:16:19 -08:00
dan dcb29c12cd docs: add HQ deployment and worker release documentation
- 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>
2026-01-12 15:36:01 -08:00
dan 560e92e678 hq: add cross-agent instructions and worker templates
- 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>
2026-01-12 13:53:05 -08:00
dan 949250bbe9 bd sync: 2026-01-12 13:52:52 2026-01-12 13:52:52 -08:00
dan 7a73ed9b1c feat: add HQ orchestration skill with architectural boundaries
- Initial SKILL.md defining thin orchestration layer
- Core loop: Assess → Plan → Delegate → Monitor → Iterate → Complete
- Explicit delegation to worker CLI, review-gate, bd, infrastructure
- Communication protocol using tagged single-line format
- Open questions scoped to HQ-specific concerns

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 10:20:14 -08:00
dan 6e81841e8d bd sync: 2026-01-12 10:19:10 2026-01-12 10:19:10 -08:00
dan 0bffc07b5f docs: add worklog for HQ architecture and beads cleanup session
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 21:40:07 -08:00
dan 4da1890fc3 docs: add scenario schema and example test fixtures
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>
2026-01-11 21:24:28 -08:00
dan 7c7733bc64 docs: clarify VPS deployment goal for skills
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-11 21:24:13 -08:00
dan b13109e8e0 fix: use absolute worktree paths, check sqlite3 availability
- 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>
2026-01-11 21:24:03 -08:00
dan 62e81b720e bd sync: 2026-01-11 21:23:48 2026-01-11 21:23:48 -08:00