Skip to content

v1.14.0: Invar Usage Feedback Collection

Choose a tag to compare

@Tefx Tefx released this 03 Jan 12:10
· 1458 commits to Main since this release

🎉 v1.14.0: Invar Usage Feedback Collection

Complete implementation of DX-79 - an automatic feedback generation system that helps improve the Invar framework by analyzing tool usage patterns.


🚀 New Features

/invar-reflect Skill

Generate structured feedback on your Invar tool usage experience:

  • Analyzes patterns: Tool usage, pain points, learning curves
  • Tracks improvements: Confusion points, workarounds, successes
  • Produces reports: Detailed markdown files in .invar/feedback/
# In Claude Code or compatible agent
/invar-reflect

invar feedback CLI Tools

List feedback files:

invar feedback list

Cleanup old files:

invar feedback cleanup --older-than 90 --dry-run
invar feedback cleanup --older-than 90  # actually delete

Anonymize for sharing:

invar feedback anonymize feedback-2026-01-03.md
invar feedback anonymize feedback-2026-01-03.md -o safe-to-share.md

Core Anonymization Logic

New module src/invar/core/feedback.py with contract-verified anonymization:

  • ✅ 8 sensitive data types removed: emails, IPs, paths, tokens, etc.
  • ✅ Contract-verified with @pre/@post decorators
  • ✅ Doctests for all anonymization patterns
  • ✅ CrossHair symbolic verification passed
  • ✅ Property tests (100 examples generated)

Init Integration

Feedback automatically configured during project setup:

  • Interactive consent prompt (opt-out design, default: enabled)
  • Visible notifications in quick modes (--claude, --pi)
  • Settings management via .claude/settings.local.json

Template Integration

New projects get /invar-reflect skill out-of-box:

  • ✅ Added to manifest.toml (SKILL.md, template.md, CONFIG.md)
  • ✅ Installed automatically via invar init --claude
  • ✅ Feature parity: New projects = Invar project

🔒 Security & Privacy

Privacy-First Design

  • ✅ Local storage only - Feedback files stored in .invar/feedback/
  • ✅ Never sent automatically - You control what (if anything) to share
  • ✅ User consent required - Opt-out prompt during init

Comprehensive Anonymization

Removes 8 types of sensitive data:

  1. Email addresses
  2. IP addresses
  3. User home directories (Unix + Windows)
  4. Absolute file paths
  5. API tokens and secrets
  6. Function/symbol names
  7. Error messages
  8. Project names

🐛 Fixes

Round 2 Review Fixes

  • Core/Shell separation: Moved anonymization from Shell to Core
  • Contract optimization: Removed redundant type checks (guard warning resolved)
  • Path consistency: Fixed Pi notification path mismatch
  • Pattern expansion: Comprehensive anonymization coverage

📊 Quality Metrics

Testing

  • ✅ Integration tests: 26/26 passed (100%)
  • ✅ Doctests: All passed
  • ✅ Property tests: 100 examples generated and passed
  • ✅ CrossHair: Symbolic verification passed

Code Review

  • ✅ Adversarial review: 2 rounds completed
  • ✅ Round 1: 3 MAJOR issues → Fixed
  • ✅ Round 2: 2 CRITICAL issues → Fixed
  • ✅ Guard verification: 0 errors, 0 warnings

📦 Installation

New Projects

# Feedback collection enabled by default
invar init --claude

Existing Projects

# Update to get new skill
invar update

Upgrade Package

pip install --upgrade invar-tools

📚 Documentation

  • Skill guide: .claude/skills/invar-reflect/SKILL.md
  • Configuration: .claude/skills/invar-reflect/CONFIG.md
  • Template reference: .claude/skills/invar-reflect/template.md

🎯 What's Next?

Usage Feedback Workflow

  1. Work with Invar - Use tools naturally
  2. Generate feedback - Run /invar-reflect
  3. Review locally - Check .invar/feedback/
  4. Anonymize if sharing - invar feedback anonymize <file>
  5. Decide what to share - You control everything

Future Enhancements

  • Dashboard for feedback analytics
  • Pattern detection for common pain points
  • Automated improvement suggestions

👥 Contributors

🤖 Generated with Claude Code

Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com


📝 Full Changelog

See CHANGELOG.md for complete details.