skills/DEPLOYED.md
dan 5fea49b7c0 feat(tufte-press): evolve skill to complete workflow with JSON generation and build automation
- Transform tufte-press from reference guide to conversation-aware generator
- Add JSON generation from conversation context following strict schema
- Create build automation scripts with Nix environment handling
- Integrate CUPS printing with duplex support
- Add comprehensive workflow documentation

Scripts added:
- skills/tufte-press/scripts/generate-and-build.sh (242 lines)
- skills/tufte-press/scripts/build-card.sh (23 lines)

Documentation:
- Updated SKILL.md with complete workflow instructions (370 lines)
- Updated README.md with usage examples (340 lines)
- Created SKILL-DEVELOPMENT-STRATEGY-tufte-press.md (450 lines)
- Added worklog: 2025-11-10-tufte-press-skill-evolution.org

Features:
- Agent generates valid JSON from conversation
- Schema validation before build (catches errors early)
- Automatic Nix shell entry for dependencies
- PDF build via tufte-press toolchain
- Optional print with duplex support
- Self-contained margin notes enforced
- Complete end-to-end testing

Workflow: Conversation → JSON → Validate → Build → Print

Related: niri-window-capture, screenshot-latest, worklog skills
2025-11-10 15:03:44 -08:00

129 lines
3.5 KiB
Markdown

# Deployed Skills
Record of skills deployed from this repository to dotfiles.
## niri-window-capture
**Deployed**: 2025-11-08
**To**: `~/proj/dotfiles/claude/skills/niri-window-capture/`
**Status**: Staged in dotfiles, awaiting rebuild
**Security**: HIGH RISK - invisible cross-workspace window capture
**Pre-deployment checklist**:
- [X] SECURITY.md reviewed
- [X] Audit logging implemented (logger -t niri-capture)
- [X] Security warnings in SKILL.md and README.md
- [X] Upstream feature request template created
- [ ] Niri block-out rules configured (user responsibility)
- [ ] System rebuilt
- [ ] Agents restarted
**Files deployed**:
- SKILL.md (184 lines) - Agent instructions
- SECURITY.md (196 lines) - Threat model and mitigations
- README.md (108 lines) - User guide
- UPSTREAM-REQUEST.md (108 lines) - Feature request for --no-clipboard
- IMPLEMENTATION-NOTES.md - Technical documentation
- scripts/capture-focused.sh - Capture current window
- scripts/capture-by-title.sh - Find and capture by title
- scripts/capture-all-windows.sh - Capture all windows
- examples/ - Usage examples
**Next steps in dotfiles**:
```bash
cd ~/proj/dotfiles
# Verify staged
git status
# Should see:
# - claude/skills/niri-window-capture/ (new directory)
# - home/claude.nix (modified)
# - home/opencode.nix (modified)
# Commit
git commit -m "Add niri-window-capture skill
Security-sensitive skill for invisible cross-workspace window capture.
Features:
- Capture windows from any workspace without switching
- Direct buffer rendering via niri compositor
- Audit logging to systemd journal (logger -t niri-capture)
- Comprehensive security documentation
Security requirements:
- User must configure niri block-out rules for sensitive apps
- All captures logged to journalctl --user -t niri-capture
- Screenshots always copied to clipboard (niri limitation)
- See SECURITY.md for complete threat model
Tested: cross-workspace capture works invisibly
Audit log: verified working
Upstream request: --no-clipboard flag template ready"
# Rebuild
sudo nixos-rebuild switch --flake .#delpad
# Restart agents
# - Exit and restart OpenCode
# - Restart Claude Code application
```
**Verification after rebuild**:
```bash
# Check deployment
ls -la ~/.claude/skills/niri-window-capture
ls -la ~/.config/opencode/skills/niri-window-capture
# Should be symlinks to nix store
# Test capture
~/.claude/skills/niri-window-capture/scripts/capture-focused.sh
# Check audit log
journalctl --user -t niri-capture -n 5
```
**User configuration required**:
```bash
# Edit ~/.config/niri/config.kdl
# Add window-rule for password managers:
window-rule {
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
match app-id=r#"^org\.gnome\.World\.Secrets$"#
block-out-from "screen-capture"
}
# Find app-id for your password manager:
niri msg --json windows | jq -r '.[] | "\(.app_id) - \(.title)"'
```
## screenshot-latest
**Status**: Not yet deployed
**Reason**: Pending decision
**Security**: Low risk (finds existing files only)
Would be simple deployment once decided.
---
## Deployment Process
1. **Develop** in `~/proj/skills/skills/<name>/`
2. **Deploy** with `./bin/deploy-skill.sh <name>`
3. **Configure** Nix in dotfiles (edit claude.nix + opencode.nix)
4. **Commit** to dotfiles git
5. **Rebuild** system: `sudo nixos-rebuild switch --flake .#delpad`
6. **Restart** agents
7. **Record** in this file
## References
- Deployment strategy: DEPLOYMENT.md
- Deployment questions: DEPLOYMENT-QUESTIONS.md
- Dotfiles workflow: ~/proj/dotfiles/docs/skills-and-commands-workflow.md