skills/docs/SKILL-DEVELOPMENT-STRATEGY-prox-setup.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

222 lines
8.1 KiB
Markdown

# Skill Development Strategy: prox-setup Document Workflow
**Analysis Date**: 2025-11-09
**Context**: prox-setup repository has mature worklog/documentation workflow that could be a skill
**Decision**: Where should this skill be developed?
## The Workflow to Capture
### What prox-setup Has
**Document Management Scripts** (`scripts/shell/`):
1. **compress_worklog.sh** - Creates compressed daily summaries with git activity
2. **archive_old_worklogs.sh** - Archives worklogs >30 days to year directories
3. **worklog_maintenance.sh** - Likely combines the above
**Documentation Structure** (`docs/`):
- 206 org-mode files total
- **worklogs/** - Active daily logs (last 30 days)
- **worklogs/compressed/daily/** - Daily summaries
- **worklogs/compressed/weekly/** - Weekly rollups
- **worklogs/compressed/project/** - High-level summaries
- **archive/YYYY/** - Historical logs by year
- **current/** - Active reference docs
- **INDEX.md** - Navigation guide
**Process Pattern**:
1. Create daily worklogs (org-mode format)
2. Compress to daily summaries (extract key decisions/problems)
3. Roll up to weekly summaries
4. Archive old logs (>30 days) to year directories
5. Maintain INDEX for navigation
## Option A: Build Skill Here (skills repo)
### Pros ✅
- **Centralized skill repository** - All skills in one place
- **We have the expertise** - Already built worklog skill, tufte-press skill, niri-window-capture
- **Established patterns** - Module structure, SKILL.md format, testing approach
- **Nix flake ready** - Can package and deploy immediately
- **Code review capability** - We can review our own work
- **Quick turnaround** - We're already in context
### Cons ❌
- **Not their workflow** - We don't use this compression/archival pattern
- **Less ownership** - They won't have built it themselves
- **Transfer knowledge required** - Need to teach them how to use/modify it
- **Might miss nuances** - They know their workflow better than we do
- **Dependency on us** - Updates/fixes require coming back to this repo
### What We'd Build
```
skills/worklog-compression/
├── SKILL.md # Agent instructions for compression workflow
├── README.md # User documentation
├── scripts/
│ ├── compress-daily.sh # Extract key decisions from worklogs
│ ├── archive-old.sh # Move logs >30 days to archive
│ ├── generate-weekly.sh # Roll up daily summaries
│ └── update-index.sh # Maintain documentation INDEX
├── templates/
│ ├── daily-summary.org # Compression template
│ └── weekly-rollup.org # Weekly template
└── examples/
└── example-compression.org
```
## Option B: Teach Them (prox-setup agent)
### Pros ✅
- **Ownership** - They build and maintain their own skill
- **Domain expertise** - They understand the workflow intimately
- **Learning opportunity** - They learn skill development patterns
- **Customization** - Can iterate on their own timeline
- **Independence** - Don't need to wait for us for updates
- **Better fit** - Skill evolves with their actual needs
### Cons ❌
- **Learning curve** - Need to understand skills architecture
- **Time investment** - Takes longer than us building it
- **Documentation burden** - We need to teach the skill development process
- **Quality risk** - Might not follow best practices initially
- **Support required** - We'll need to answer questions during development
### What We'd Provide
1. **skills Repository as Reference** - They can see existing skills as examples
2. **AGENTS.md** - Development guidelines already written
3. **Template Skill** - `skills/template/` as starting point
4. **Nix Flake Pattern** - They can add to our flake or create their own
5. **Code Review** - We review their PRs/commits
## Option C: Hybrid Approach (Recommended)
### Phase 1: We Build MVP (1-2 hours)
**Quick prototype in skills repo**:
- Basic compression skill with their scripts as templates
- SKILL.md with their workflow documented
- README with installation instructions
- Deploy to their ops-dev VM for immediate use
### Phase 2: They Take Over (ongoing)
**Transfer ownership**:
- Show them the skill structure
- Point them to AGENTS.md and existing skills
- They fork/copy to their repo or maintain here
- They iterate based on real usage
- We review PRs/provide guidance
### Benefits ✅
- **Immediate value** - Working skill quickly
- **Learning by example** - Real skill to study and modify
- **Gradual handoff** - No pressure to learn everything at once
- **Shared maintenance** - They can improve, we can review
- **Both gain** - We validate our skill patterns, they get working tool
## Recommendation: Option C (Hybrid)
### Rationale
1. **Time-sensitive** - They're already using worklog compression, need it now
2. **Teaching vehicle** - A real skill is better than abstract docs
3. **Risk mitigation** - If they don't have time to learn, they still have working skill
4. **Community building** - Sets precedent for collaborative skill development
5. **Pattern validation** - Tests our Nix flake module approach
### Implementation Plan
**Us (Next 1-2 hours)**:
1. Create `skills/worklog-compression/` skill
2. Adapt their existing scripts (compress_worklog.sh, archive_old_worklogs.sh)
3. Write SKILL.md with their workflow
4. Add to our Nix flake packages
5. Document how to use it
6. Commit to skills repo
**Them (When ready)**:
1. Point them to the skill we built
2. Show them AGENTS.md and template skill
3. They test the skill in their environment
4. They fork/modify to their needs
5. Optional: They submit improvements back
**Collaboration Points**:
- We review their modifications
- They report bugs/feature requests
- We help with Nix packaging if needed
- Knowledge exchange on workflow patterns
### Next Steps
1. **Confirm with user** - Is hybrid approach acceptable?
2. **Build MVP skill** - 1-2 hour effort
3. **Deploy to ops-dev** - Use our Nix flake module
4. **Create handoff doc** - How to modify/maintain
5. **Schedule knowledge transfer** - When they're ready to take over
## Comparison: Skills Repo vs Their Repo
### If Skill Lives in skills repo (dan/skills)
**Pros**:
- Centralized discovery (one place to find all skills)
- Our Nix flake already set up
- Shared improvement (others could use it)
- Consistent structure (all skills follow same pattern)
**Cons**:
- They need access to this repo to modify
- Deployment coupling (need to pull this repo)
- Version sync issues (their changes affect others)
### If Skill Lives in Their Repo (dan/prox-setup)
**Pros**:
- Full control (no PRs needed to modify)
- Independent versioning (break things freely)
- Deployment coupled to their environment
- Natural fit (skill alongside the workflow it supports)
**Cons**:
- Not discoverable by others
- Need to create their own Nix flake (or use ours via input)
- Duplicate effort if others want similar
### Recommendation
**Start here, migrate there**:
1. Build MVP in `dan/skills` (fast iteration, we control)
2. Once stable, they can:
- Keep using from our repo (via Nix flake input)
- Copy to their repo (for full control)
- Maintain in both (improvements flow back)
## Questions for User
1. **Timeline**: How urgently do you need this? (affects whether we build or teach)
2. **Ownership preference**: Do you want to maintain this long-term or prefer we do?
3. **Learning goal**: Is learning skill development important, or just having working skill?
4. **Collaboration model**: Comfortable with PRs back to skills repo, or prefer isolation?
5. **Deployment**: ops-dev only, or other VMs too?
## Related Context
- **Recent worklog**: 2025-11-09-ops-dev-vm-mobile-connectivity-and-skills-deployment.org
- They deployed tufte-press skill to ops-dev
- Used flake bundling approach (environment.etc)
- Understand skills deployment pattern
- Already have Forgejo repository for skills
- **Their agent knows**:
- How to write worklogs (206 examples)
- Shell scripting patterns
- Git integration patterns
- Org-mode structure
- **We know**:
- Skill architecture
- AGENTS.md guidelines
- Nix flake packaging
- Testing/validation patterns
**Best outcome**: Combine expertise - we scaffold structure, they provide domain knowledge.