assq uses eq for key comparison, which can fail if the key symbols aren't
identical objects. assoc uses equal, which is what org-caldav itself uses
for rrule-props lookups (e.g., INTERVAL, FREQ).
This fixes DEADLINEs not being added to recurring events with UNTIL dates.
Also adds debug logging to help diagnose any remaining issues - will be
removed once verified working.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements advice around org-caldav-insert-org-event-or-todo that:
- Extracts UNTIL from rrule-props
- Adds DEADLINE without repeater (Org 9.7+ treats as recurrence end)
- Stores :CALDAV_UNTIL: property for reference
Also fixes sync command to work before org is opened by requiring
org explicitly in the sync wrapper.
Closes: x-uv5f.1
GPG isn't installed, so .authinfo.gpg approach doesn't work.
Added wrapper function my/org-caldav-sync-with-rbw that fetches
credentials from rbw before calling org-caldav-sync.
Setup: rbw add nextcloud-caldav (app password as secret)
Files copied from the nix store inherit read-only permissions, causing
subsequent home-manager activations to fail with "Permission denied".
Add rm -f before copy and chmod u+w after copy for all plugin files:
- humanlayer commands and agents
- local commands and skills
- micro-skills
- beads formulas
Executed-By: nixos_configs/crew/hermione
Rig: nixos_configs
Role: crew
- Add gastown flake input (non-flake, source only)
- Build gastown package using buildGoModule in development role
- Configure renovate for daily updates of gastown and beads
- Binary: gt (Gas Town CLI by Steve Yegge)
Add periodic timer (every 5 min) that runs `bd gate check --type=timer`
across all beads workspaces with running daemons.
This enables self-scheduling molecules - workflows that can set timer
gates to schedule their own future execution (e.g., watchers that scan
Slack every 8 hours).
The timer:
- Only runs on Linux (uses systemd user services)
- Discovers workspaces via `bd daemon list`
- Silently skips if no beads daemons are running
Related: nixos-configs-1rk.2 (Time beads scheduling mechanism)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added ERROR status for execution failures (command not found, permission error)
- Added status definitions: PASS, FAIL, SKIP, ERROR with clear criteria
- Restructured PR template with three validation sections:
- Automated Checks: table of executed checks with status
- Manual Verification Required: unchecked boxes from plan
- CONTRIBUTING.md Compliance: extracted requirements with verification status
- Added instructions to extract manual verification items from plans
- Enhanced CONTRIBUTING.md extraction to track automated vs manual requirements
- Updated validation summary format to include error count
The mu4e msmtp configuration was causing email bodies to be stripped,
especially for multipart messages from org-msg. This was due to missing
critical msmtp settings.
Changes:
- Add message-sendmail-f-is-evil to prevent -f flag issues
- Add --read-envelope-from to msmtp arguments
- Set both send-mail-function and message-send-mail-function
Fixes: nixos-configs-9l8
Add lib.optionals pkgs.stdenv.isLinux guards to roles that contain
Linux-only packages or services to prevent build failures on Darwin:
- communication: Guard Electron apps (element-desktop, fluffychat,
nextcloud-talk-desktop) that don't build on Darwin due to electron
build-from-source limitations
- kdeconnect: Guard entire config block since services.kdeconnect
requires D-Bus and systemd (Linux-only)
- sync: Guard syncthingtray package (requires Linux system tray)
- email: Guard systemd.user.services/timers (Darwin uses launchd)
- desktop: Guard Linux-only packages, services, and KDE-specific
configurations including gnome-keyring, systemd services, and
XDG mime associations
Implements bead: nixos-configs-tcu
Moves from project-level (.claude/commands/) to user-level
(home/roles/development/skills/) so it's available across all projects
via Home Manager activation.
Bead: nixos-configs-g72
## Summary
- Rewrote gitea_pr_review.md as a comprehensive interactive skill
- Accepts PR number as argument or auto-detects from current branch
- Reads Gitea config from tea CLI config file
- Fetches and displays review comments via REST API
- Interactive comment selection via AskUserQuestion
- Posts replies via `tea comment` with file:line context
## Bead Reference
Implements bead: nixos-configs-vru
## Changes
- Rewritten `home/roles/development/skills/gitea_pr_review.md` (+259/-155 lines)
## Testing
Please leave a review comment on this PR so we can test the skill!
## Limitations
- Thread replies are posted as top-level comments (Gitea API limitation)
- Uses first login from tea config
Reviewed-on: #26
Co-authored-by: John Ogle <john@ogle.fyi>
Co-committed-by: John Ogle <john@ogle.fyi>
- parallel_beads: Filter beads by plan readiness before selection
- Include beads with plans or type=bug
- Warn about skipped beads that need plans first
- beads_implement: Check for plan based on bead type
- Bugs can proceed without plans
- Features/tasks warn and ask user preference
- beads_workflow: Document design decisions
- Artifacts vs statuses for phase tracking
- One bead per feature as default
- Discovered-work pattern for splitting work
Closes: nixos-configs-45r, nixos-configs-8gr, nixos-configs-oog, nixos-configs-505
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Enhances the parallel_beads workflow to capture and report validation status:
- Add step 3 to extract validation criteria from plans or use best-effort
fallbacks (make test, nix flake check, npm test)
- Update step 4 to run validation and track PASS/FAIL/SKIP results
- Add Validation section with table to PR body templates (gh and tea)
- Enhance result reporting to include validation summary
- Add Validation column and Validation Failures section to summary table
Implements bead: nixos-configs-39m
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New skills for integrated beads + humanlayer workflow:
- beads_research.md: Research with per-bead artifact storage
- beads_plan.md: Planning with bead linking
- beads_implement.md: Implementation with per-plan checkpoints
- beads_iterate.md: Plan iteration with version history
- beads_workflow.md: Comprehensive workflow documentation
Skills output to thoughts/beads-{id}/ for artifact storage
and automatically update bead notes with artifact links.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds a new Claude Code skill that enables reading PR review comments and
posting replies on Gitea/Forgejo instances. Documents both the REST API
approach for reading reviews and the web endpoint approach for thread
replies, with fallback to top-level comments when thread replies aren't
possible due to authentication limitations.
Implements bead: nixos-configs-vru
- Fix jq syntax: bd show --json returns array, use .[0].notes
- Add grep command to extract PR number from URL
- Correct Gitea workflow: tea pr view lists all PRs, use tea pr list --state=closed instead
- Add step to mark beads as 'in_review' after PR creation
- Add PR URL to bead notes for traceability
- Create reconcile_beads skill to close beads when PRs are merged
- Update summary table to show bead status instead of generic status
Implements bead: nixos-configs-85h
Implement pre-built Doom Emacs packages for the live USB image, eliminating
the need to run `doom sync` after first boot.
Changes:
- Add nix-doom-emacs-unstraightened flake input
- Add homeModule to all three module sets (nixos, unstable, darwin)
- Add `prebuiltDoom` option to emacs role (default: false)
- Enable prebuiltDoom for live-usb configuration
- Pin custom packages in packages.el for deterministic builds:
- claude-code-ide, gptel-tool-library, beads
When prebuiltDoom=true, all Doom packages are compiled at nix build time
using emacs-overlay. The doom configuration is stored in the nix store
(read-only), and no `doom sync` is required at runtime.
This is ideal for:
- Live USB images
- Immutable/reproducible systems
- Offline deployments
Closes: nixos-configs-1wd
Create home-server.nix with minimal development-focused configuration
enabling base, emacs, development, and tmux roles. Update flake.nix
to wire up home-manager for the johno user on the server.
Add a new home-manager role for starship.rs, a fast and customizable
cross-shell prompt written in Rust.
Configuration includes:
- Bash and Zsh integration enabled
- Clean character symbols (> for success, x for error)
- Vi mode indicator support
- Smart directory truncation (4 levels, truncate to repo root)
- Git branch and status display
- Nix shell indicator with snowflake symbol
- Command duration for long-running commands (2s+)
- Disabled noisy modules (language runtimes, cloud providers)
Enabled in: home-desktop, home-laptop-compact, home-live-usb,
home-media-center configurations.
Closes: nixos-configs-uji
- Add skills/ directory for local Claude skills
- Create parallel_beads.md skill that orchestrates:
- Phase 1: Multi-select bead selection from bd ready
- Phase 2: Parallel subagents for implementation (worktree, implement, commit, PR)
- Phase 3: Parallel review subagents
- Phase 4: Cleanup and summary
- Update default.nix to install local skills alongside humanlayer plugins
- Support both gh (GitHub) and tea (Gitea/Forgejo) based on origin URL
Adds a custom Nix package for perles, a terminal user interface for the
Beads issue tracking system with BQL query language support.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace complex marketplace plugin installation with simple 'bd setup claude'
which installs hooks into ~/.claude/settings.json. This is the recommended
approach for Claude Code (CLI + hooks) vs the MCP server approach.
Move keybinding to :init block so SPC o c works before first invocation.
Add :commands for proper autoloading. Migrate customizations from
custom.el to config.el.