Skip to content

docs: update v5.3.0 roadmap with new feature ideas - #207

Merged
Data-Wise merged 1 commit into
mainfrom
docs/v5.3.0-roadmap
Jan 11, 2026
Merged

Data-Wise merged 1 commit into
mainfrom
docs/v5.3.0-roadmap

Conversation

@Data-Wise

Copy link
Copy Markdown
Owner

Summary

  • Added new v5.3.0 feature ideas to .STATUS roadmap
  • dot secret copy - clipboard integration with auto-clear
  • dot secrets -i - interactive fzf dashboard
  • dot validate - template validation before apply

Test plan

  • .STATUS file updated correctly
  • CI passes

🤖 Generated with Claude Code

Added to v5.3.0 enhancement plan:
- dot secret copy - clipboard integration with auto-clear
- dot secrets -i - interactive fzf dashboard
- dot validate - template validation before apply

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@Data-Wise
Data-Wise merged commit 12b609d into main Jan 11, 2026
1 check passed
@Data-Wise
Data-Wise deleted the docs/v5.3.0-roadmap branch January 11, 2026 21:36
Data-Wise added a commit that referenced this pull request Jan 11, 2026
Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Jan 11, 2026
* docs: add workflow protocol for feature development

Created .claude/WORKFLOW-PROTOCOL.md:
- Planning phase on dev branch
- Commit planning docs before worktree creation
- Create worktree from dev
- Ask user to start NEW session for implementation

Updated CLAUDE.md:
- Added critical workflow protocol section
- Reference to detailed protocol document

This ensures clean separation:
- Planning session (dev) = design, specs, approval
- Implementation session (worktree) = focused coding

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add teaching workflow specification

Created comprehensive spec for universal teaching workflow:
- STAT 545 as first implementation
- Teaching-aware work command
- Per-course .flow/teach-config.yml
- 3-tier automation (scripts + flow-cli + GitHub Actions)
- Integration with scholar and nexus
- teach-init command for course scaffolding

From brainstorm session with extensive user requirements gathering.
Approved plan ready for implementation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: update .STATUS with teaching workflow session

Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

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

* docs: add two additional spec files for future planning

Added spec files:
- SPEC-Flow-CLI-Documentation-Enhancement - Complete-Implementation.md
  (1270 lines, ADHD-friendly docs redesign)
- SPEC-STAT-545-COMPREHENSIVE-PLAN.md
  (1418 lines, course migration plan)

These specs were created alongside the teaching workflow spec
but represent separate features for future implementation.

Status: Ready for review and planning

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

* docs: add ADHD-friendly documentation enhancements (#209)

New files:
- docs/getting-started/im-stuck.md - Troubleshooting guide with quick fixes
- docs/getting-started/choose-your-path.md - Role-based onboarding paths
- docs/quick-reference-card.md - Printable command reference
- docs/stylesheets/extra.css - ADHD-friendly visual enhancements

Modified files:
- docs/index.md - Added TL;DR callout and path selection grid
- mkdocs.yml - Updated navigation with new pages

Features:
- Progressive disclosure design (quick wins up front)
- Visual hierarchy with colored callout boxes
- Print-friendly reference card
- Grid-based path selection on homepage
- Dark mode support for all new styles
- Mobile responsive design

Impact: Improves discoverability, reduces cognitive load, provides
clear entry points for different learning styles.

Based on complete implementation spec (1,270 lines)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Jan 12, 2026
…on (#212)

* docs: add workflow protocol for feature development

Created .claude/WORKFLOW-PROTOCOL.md:
- Planning phase on dev branch
- Commit planning docs before worktree creation
- Create worktree from dev
- Ask user to start NEW session for implementation

Updated CLAUDE.md:
- Added critical workflow protocol section
- Reference to detailed protocol document

This ensures clean separation:
- Planning session (dev) = design, specs, approval
- Implementation session (worktree) = focused coding

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add teaching workflow specification

Created comprehensive spec for universal teaching workflow:
- STAT 545 as first implementation
- Teaching-aware work command
- Per-course .flow/teach-config.yml
- 3-tier automation (scripts + flow-cli + GitHub Actions)
- Integration with scholar and nexus
- teach-init command for course scaffolding

From brainstorm session with extensive user requirements gathering.
Approved plan ready for implementation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: update .STATUS with teaching workflow session

Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

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

* docs: add two additional spec files for future planning

Added spec files:
- SPEC-Flow-CLI-Documentation-Enhancement - Complete-Implementation.md
  (1270 lines, ADHD-friendly docs redesign)
- SPEC-STAT-545-COMPREHENSIVE-PLAN.md
  (1418 lines, course migration plan)

These specs were created alongside the teaching workflow spec
but represent separate features for future implementation.

Status: Ready for review and planning

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

* docs: add ADHD-friendly documentation enhancements (#209)

New files:
- docs/getting-started/im-stuck.md - Troubleshooting guide with quick fixes
- docs/getting-started/choose-your-path.md - Role-based onboarding paths
- docs/quick-reference-card.md - Printable command reference
- docs/stylesheets/extra.css - ADHD-friendly visual enhancements

Modified files:
- docs/index.md - Added TL;DR callout and path selection grid
- mkdocs.yml - Updated navigation with new pages

Features:
- Progressive disclosure design (quick wins up front)
- Visual hierarchy with colored callout boxes
- Print-friendly reference card
- Grid-based path selection on homepage
- Dark mode support for all new styles
- Mobile responsive design

Impact: Improves discoverability, reduces cognitive load, provides
clear entry points for different learning styles.

Based on complete implementation spec (1,270 lines)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add project cache & auto-discovery enhancement plan

New spec: SPEC-project-cache-auto-discovery.md
- Comprehensive 3-phase implementation plan
- Phase 1 (v5.6.0): Caching layer for 40x performance
- Phase 2 (v5.7.0): Auto-discovery for zero config
- Phase 3 (v5.8.0): Unified type detection

Code review completed:
- lib/project-detector.zsh (131 lines)
- commands/pick.zsh (974 lines)
- Rating: 8.5/10
- Identified: performance bottleneck, extensibility issues

Updated .STATUS:
- Added Sprint 6 roadmap (v5.6.0-v5.8.0, ~14 hours)
- Updated Next Steps with new option B
- Updated Just Completed section
- Progress: 18% → 19%

Impact: High performance gain + extensibility improvement
Risk: Low (opt-in rollout, extensive testing)

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

* chore: add exec zsh to approved Bash commands

- Added 'Bash(exec zsh)' to approved commands list
- Allows shell reload during workflow operations

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

* docs: formalize mandatory git workflow protocol

Major updates to workflow documentation:

BRANCH-WORKFLOW.md:
- Added 'Mandatory Workflow Protocol' section
- Detailed 5-step workflow (planning → worktree → implementation)
- Tool usage constraints for Claude Code
- Abort conditions for protected branch operations
- Worktree isolation requirements
- Workflow validation checklist

CLAUDE.md:
- Expanded 'Git Workflow & Standards' section
- Explicit worktree creation protocol
- Critical rule: NEW session required after worktree creation
- Conventional commit standards
- Tool usage constraints
- ABORT conditions for Claude Code

Key workflow rules enforced:
1. Planning on dev branch only
2. No feature code on dev branch
3. Worktree isolation for all features
4. NEW Claude session required after worktree creation
5. Conventional commits mandatory
6. PR workflow for all merges (feature → dev → main)

Impact: Prevents common workflow violations
- No accidental commits to main/dev
- No working in wrong directory
- No mixing planning and implementation contexts
- Enforces branch protection rules

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

* test: add comprehensive test suites for pick & cc

New files:
- test-pick-command.zsh: 39 tests for pick functionality (556 lines)
  * Function existence (6 tests)
  * Frecency scoring (4 tests)
  * Project detection & listing (9 tests)
  * Session status indicators (4 tests)
  * Worktree detection (4 tests)
  * Pick invocation & edge cases (9 tests)
  * Aliases (3 tests)

Enhanced files:
- test-cc-dispatcher.zsh: Expanded to 37 tests (722 lines, +247)
  * Added unified grammar tests (4 tests)
  * Added shortcut expansion tests (4 tests)
  * Added explicit HERE tests (2 tests)
  * Added function existence tests (2 tests)

Coverage highlights:
- Pick: Frecency decay algorithm, session indicators, worktree integration
- CC: Mode-first & target-first patterns, shortcuts (y/p/o/h), validation

Test results: 76/76 passing (100%)

Fixes applied:
- Frecency scoring expectations (timestamp=0 returns 0)
- ANSI code stripping for help text matching
- Worktree test isolation (re-source plugin)
- Error message validation
- PATH restoration in edge cases

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

* docs: add comprehensive testing guide

New documentation:
- docs/guides/TESTING.md (comprehensive testing guide)
  * Test philosophy and architecture
  * Test file structure and patterns
  * Writing tests (6 patterns with examples)
  * Mock environment setup (projects, worktrees)
  * ANSI code handling for reliable assertions
  * Debugging test failures (4 strategies)
  * Best practices and TDD workflow
  * Coverage goals and CI integration

Updates:
- CLAUDE.md: Enhanced Testing section
  * Reference to new testing guide
  * Updated test suite overview (76+ tests)
  * Test coverage table
  * Quick verification commands

- mkdocs.yml: Updated Testing navigation
  * Points to guides/TESTING.md
  * Added 🧪 emoji for visibility

Coverage documented:
- Pick command: 39 tests (100%)
- CC dispatcher: 37 tests (100%)
- DOT dispatcher: 112+ tests (100%)
- Total: 76+ tests across 8 suites

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

* docs: update TESTING-QUICK-REF with v5.0.0 test suites

Updates:
- Added Core Test Suites section (v5.0.0+)
  * Table of 6 test files with coverage
  * 76+ tests total (100% passing)
  * Run all command: ./tests/run-all.sh
  * Link to Testing Guide

- Reordered sections
  * Core Test Suites (#1) - Primary test infrastructure
  * Interactive Dog Feeding (#2) - Manual validation
  * Automated Test Suite (#3) - Legacy
  * ZSH Configuration Tests (#4)

- Quick Commands section updated
  * Added run-all.sh
  * Added individual test suite commands
  * Shows coverage count (76+ tests)

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Jan 12, 2026
* docs: add workflow protocol for feature development

Created .claude/WORKFLOW-PROTOCOL.md:
- Planning phase on dev branch
- Commit planning docs before worktree creation
- Create worktree from dev
- Ask user to start NEW session for implementation

Updated CLAUDE.md:
- Added critical workflow protocol section
- Reference to detailed protocol document

This ensures clean separation:
- Planning session (dev) = design, specs, approval
- Implementation session (worktree) = focused coding

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add teaching workflow specification

Created comprehensive spec for universal teaching workflow:
- STAT 545 as first implementation
- Teaching-aware work command
- Per-course .flow/teach-config.yml
- 3-tier automation (scripts + flow-cli + GitHub Actions)
- Integration with scholar and nexus
- teach-init command for course scaffolding

From brainstorm session with extensive user requirements gathering.
Approved plan ready for implementation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: update .STATUS with teaching workflow session

Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

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

* docs: add two additional spec files for future planning

Added spec files:
- SPEC-Flow-CLI-Documentation-Enhancement - Complete-Implementation.md
  (1270 lines, ADHD-friendly docs redesign)
- SPEC-STAT-545-COMPREHENSIVE-PLAN.md
  (1418 lines, course migration plan)

These specs were created alongside the teaching workflow spec
but represent separate features for future implementation.

Status: Ready for review and planning

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

* docs: add ADHD-friendly documentation enhancements (#209)

New files:
- docs/getting-started/im-stuck.md - Troubleshooting guide with quick fixes
- docs/getting-started/choose-your-path.md - Role-based onboarding paths
- docs/quick-reference-card.md - Printable command reference
- docs/stylesheets/extra.css - ADHD-friendly visual enhancements

Modified files:
- docs/index.md - Added TL;DR callout and path selection grid
- mkdocs.yml - Updated navigation with new pages

Features:
- Progressive disclosure design (quick wins up front)
- Visual hierarchy with colored callout boxes
- Print-friendly reference card
- Grid-based path selection on homepage
- Dark mode support for all new styles
- Mobile responsive design

Impact: Improves discoverability, reduces cognitive load, provides
clear entry points for different learning styles.

Based on complete implementation spec (1,270 lines)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add project cache & auto-discovery enhancement plan

New spec: SPEC-project-cache-auto-discovery.md
- Comprehensive 3-phase implementation plan
- Phase 1 (v5.6.0): Caching layer for 40x performance
- Phase 2 (v5.7.0): Auto-discovery for zero config
- Phase 3 (v5.8.0): Unified type detection

Code review completed:
- lib/project-detector.zsh (131 lines)
- commands/pick.zsh (974 lines)
- Rating: 8.5/10
- Identified: performance bottleneck, extensibility issues

Updated .STATUS:
- Added Sprint 6 roadmap (v5.6.0-v5.8.0, ~14 hours)
- Updated Next Steps with new option B
- Updated Just Completed section
- Progress: 18% → 19%

Impact: High performance gain + extensibility improvement
Risk: Low (opt-in rollout, extensive testing)

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

* chore: add exec zsh to approved Bash commands

- Added 'Bash(exec zsh)' to approved commands list
- Allows shell reload during workflow operations

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

* docs: formalize mandatory git workflow protocol

Major updates to workflow documentation:

BRANCH-WORKFLOW.md:
- Added 'Mandatory Workflow Protocol' section
- Detailed 5-step workflow (planning → worktree → implementation)
- Tool usage constraints for Claude Code
- Abort conditions for protected branch operations
- Worktree isolation requirements
- Workflow validation checklist

CLAUDE.md:
- Expanded 'Git Workflow & Standards' section
- Explicit worktree creation protocol
- Critical rule: NEW session required after worktree creation
- Conventional commit standards
- Tool usage constraints
- ABORT conditions for Claude Code

Key workflow rules enforced:
1. Planning on dev branch only
2. No feature code on dev branch
3. Worktree isolation for all features
4. NEW Claude session required after worktree creation
5. Conventional commits mandatory
6. PR workflow for all merges (feature → dev → main)

Impact: Prevents common workflow violations
- No accidental commits to main/dev
- No working in wrong directory
- No mixing planning and implementation contexts
- Enforces branch protection rules

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

* test: add comprehensive test suites for pick & cc

New files:
- test-pick-command.zsh: 39 tests for pick functionality (556 lines)
  * Function existence (6 tests)
  * Frecency scoring (4 tests)
  * Project detection & listing (9 tests)
  * Session status indicators (4 tests)
  * Worktree detection (4 tests)
  * Pick invocation & edge cases (9 tests)
  * Aliases (3 tests)

Enhanced files:
- test-cc-dispatcher.zsh: Expanded to 37 tests (722 lines, +247)
  * Added unified grammar tests (4 tests)
  * Added shortcut expansion tests (4 tests)
  * Added explicit HERE tests (2 tests)
  * Added function existence tests (2 tests)

Coverage highlights:
- Pick: Frecency decay algorithm, session indicators, worktree integration
- CC: Mode-first & target-first patterns, shortcuts (y/p/o/h), validation

Test results: 76/76 passing (100%)

Fixes applied:
- Frecency scoring expectations (timestamp=0 returns 0)
- ANSI code stripping for help text matching
- Worktree test isolation (re-source plugin)
- Error message validation
- PATH restoration in edge cases

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

* docs: add comprehensive testing guide

New documentation:
- docs/guides/TESTING.md (comprehensive testing guide)
  * Test philosophy and architecture
  * Test file structure and patterns
  * Writing tests (6 patterns with examples)
  * Mock environment setup (projects, worktrees)
  * ANSI code handling for reliable assertions
  * Debugging test failures (4 strategies)
  * Best practices and TDD workflow
  * Coverage goals and CI integration

Updates:
- CLAUDE.md: Enhanced Testing section
  * Reference to new testing guide
  * Updated test suite overview (76+ tests)
  * Test coverage table
  * Quick verification commands

- mkdocs.yml: Updated Testing navigation
  * Points to guides/TESTING.md
  * Added 🧪 emoji for visibility

Coverage documented:
- Pick command: 39 tests (100%)
- CC dispatcher: 37 tests (100%)
- DOT dispatcher: 112+ tests (100%)
- Total: 76+ tests across 8 suites

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

* docs: update TESTING-QUICK-REF with v5.0.0 test suites

Updates:
- Added Core Test Suites section (v5.0.0+)
  * Table of 6 test files with coverage
  * 76+ tests total (100% passing)
  * Run all command: ./tests/run-all.sh
  * Link to Testing Guide

- Reordered sections
  * Core Test Suites (#1) - Primary test infrastructure
  * Interactive Dog Feeding (#2) - Manual validation
  * Automated Test Suite (#3) - Legacy
  * ZSH Configuration Tests (#4)

- Quick Commands section updated
  * Added run-all.sh
  * Added individual test suite commands
  * Shows coverage count (76+ tests)

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

* feat(cache): Project list caching with 5-minute TTL (v5.3.0) (#214)

* feat(cache): implement project list caching with 5-minute TTL

Implement Phase 1 of the project cache enhancement (v5.3.0) to achieve
sub-10ms performance for the pick command through intelligent caching.

Core Module (lib/project-cache.zsh - 170 lines):
- Cache generation with Unix timestamp header
- TTL-based validity checking (5-minute default, configurable)
- Auto-regeneration on missing/stale/corrupt cache
- Graceful fallback to uncached mode on errors
- Cache statistics and reporting
- User commands: flow cache refresh/clear/status

Integration:
- Modified commands/pick.zsh to use cached list access
- Added flow cache dispatcher to commands/flow.zsh
- Integrated cache module into flow.plugin.zsh
- XDG-compliant cache location: ~/.cache/flow-cli/projects.cache

Unit Tests (42 tests across 3 suites):
- Cache Access & Auto-Regeneration (16 tests)
- Cache Generation (10 tests)
- Cache Validation (16 tests)

Integration Tests (17 tests):
- End-to-end cache lifecycle
- User command validation
- Pick command integration

Interactive Tests (15 tests):
- ADHD-friendly dog-feeding test
- Enhanced with expected vs actual output comparison
- Gamification (streaks, bonuses, progress bars)

Total: 59 automated tests + 15 interactive = 74 tests
All tests passing with 100% function coverage

Guides:
- docs/guides/PROJECT-CACHE.md - Comprehensive implementation guide
- docs/reference/CACHE-QUICK-REFERENCE.md - Quick lookup card

Testing:
- tests/TEST-PLAN.md - Complete test strategy
- tests/TEST-RESULTS-ANALYSIS.md - Comprehensive results analysis
- tests/INTERACTIVE-CACHE-TEST-README.md - Interactive test guide
- tests/INTERACTIVE-TEST-IMPROVEMENTS.md - Enhancement details

Cache Management:
- Automatic cache generation on first use
- Auto-regeneration when cache is stale (> 5 min)
- Auto-regeneration when cache is corrupt
- Manual control via flow cache commands

Configuration:
- PROJ_CACHE_TTL - Custom TTL in seconds (default: 300)
- FLOW_CACHE_ENABLED - Enable/disable cache (default: 1)

User Commands:
- flow cache refresh - Force cache regeneration
- flow cache clear - Delete cache file
- flow cache status - Display cache statistics

Error Handling:
- Graceful fallback on all 5 failure modes
- No user-visible errors
- Transparent operation

Expected improvement: 40x speedup
- Before: ~200ms (filesystem scan)
- After: <10ms (cache read)
- Cache overhead: <1ms (TTL validation)

Implementation:
- lib/project-cache.zsh (new, 170 lines)
- commands/pick.zsh (modified, cache integration)
- commands/flow.zsh (modified, cache commands)
- flow.plugin.zsh (modified, load cache module)

Tests:
- tests/unit/test-cache-*.zsh (new, 3 files, 42 tests)
- tests/test-project-cache.zsh (modified, 17 integration tests)
- tests/interactive-cache-dogfeeding.zsh (new, 15 interactive tests)
- tests/test-utils.zsh (new, 20+ assertions)
- tests/run-unit-tests.zsh (new, test orchestrator)

Documentation:
- docs/guides/PROJECT-CACHE.md (new)
- docs/reference/CACHE-QUICK-REFERENCE.md (new)
- tests/TEST-PLAN.md (new)
- tests/TEST-RESULTS-ANALYSIS.md (new)
- tests/INTERACTIVE-*.md (new, 2 files)
- README.md (updated, performance section)
- CLAUDE.md (updated, v5.3.0 status)

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

* fix(cache): store complete list, filter at read time

Fix category filtering bug where cache stored filtered data but didn't
re-apply filters on retrieval, causing wrong results when different
filters were requested.

## Root Cause

Cache generated with filter (e.g. 'dev') but returned that filtered
data for ALL subsequent queries, ignoring the requested filter parameter.

Example of bug:
- pick dev → Cache stores: [dev projects only]
- pick r   → Cache returns: [dev projects] ❌ Wrong!

## Solution

Architecture change: Cache stores COMPLETE unfiltered project list,
filtering happens at read time using grep.

Benefits:
- Single cache serves all filter combinations
- No cache invalidation on filter changes
- Filtering is cheap (~1ms) vs scanning (~200ms)
- Eliminates entire class of filter-related bugs

## Implementation

lib/project-cache.zsh:
- _proj_cache_generate(): Remove "$@" - always cache everything
- _proj_list_all_cached(): Apply category/recent filters after read

tests/unit/test-cache-generation.zsh:
- Update tests to expect unfiltered cache contents

## Performance Impact

Before fix (broken):
- pick dev (first):  200ms (cache miss)
- pick r (second):   <1ms (wrong data from cache) ❌

After fix (correct):
- pick dev (first):  200ms (cache miss, caches ALL)
- pick r (second):   <2ms (cache hit + filter) ✅

Performance maintained: 100x speedup (2ms vs 200ms)

## Test Results

Before fix: 36/39 pick tests passing (92%)
After fix:  39/39 pick tests passing (100%)

All test suites:
- ✅ 39/39 pick command tests
- ✅ 42/42 cache unit tests
- ✅ 17/17 cache integration tests
- ✅ 98/98 total tests (100%)

Fixes #3 category filter test failures

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

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: highlight project cache performance in site

- index.md: Add cache note to Design Philosophy (40x faster)
- quick-reference-card.md: Note pick is cached for speed
- tutorials/02-multiple-projects.md: Add performance tip box

Subtle mentions of v5.3.0 cache feature where users first
encounter the pick command. Comprehensive guide already exists
at docs/guides/PROJECT-CACHE.md (439 lines).

Related: PR #214 - Project list caching with 5-minute TTL

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

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Jan 12, 2026
* docs: add workflow protocol for feature development

Created .claude/WORKFLOW-PROTOCOL.md:
- Planning phase on dev branch
- Commit planning docs before worktree creation
- Create worktree from dev
- Ask user to start NEW session for implementation

Updated CLAUDE.md:
- Added critical workflow protocol section
- Reference to detailed protocol document

This ensures clean separation:
- Planning session (dev) = design, specs, approval
- Implementation session (worktree) = focused coding

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: add teaching workflow specification

Created comprehensive spec for universal teaching workflow:
- STAT 545 as first implementation
- Teaching-aware work command
- Per-course .flow/teach-config.yml
- 3-tier automation (scripts + flow-cli + GitHub Actions)
- Integration with scholar and nexus
- teach-init command for course scaffolding

From brainstorm session with extensive user requirements gathering.
Approved plan ready for implementation.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: update .STATUS with teaching workflow session

Session accomplishments:
- Branch cleanup (9 local, 4 remote branches)
- Established dev branch workflow (feature → dev → main)
- Created workflow protocol (.claude/WORKFLOW-*.md)
- Created teaching workflow spec (911 lines, approved)
- Created teaching-workflow worktree (ready for impl)

Documentation updates:
- BRANCH-WORKFLOW.md (323 lines)
- WORKFLOW-PROTOCOL.md (197 lines)
- SPEC-teaching-workflow.md (911 lines)
- Updated CLAUDE.md, PR-WORKFLOW-GUIDE.md

PRs merged: #207 (v5.3.0 roadmap), #208 (dev workflow)

Session: 2.5 hours
Next: NEW session in worktree per protocol

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

* docs: add two additional spec files for future planning

Added spec files:
- SPEC-Flow-CLI-Documentation-Enhancement - Complete-Implementation.md
  (1270 lines, ADHD-friendly docs redesign)
- SPEC-STAT-545-COMPREHENSIVE-PLAN.md
  (1418 lines, course migration plan)

These specs were created alongside the teaching workflow spec
but represent separate features for future implementation.

Status: Ready for review and planning

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

* docs: add ADHD-friendly documentation enhancements (#209)

New files:
- docs/getting-started/im-stuck.md - Troubleshooting guide with quick fixes
- docs/getting-started/choose-your-path.md - Role-based onboarding paths
- docs/quick-reference-card.md - Printable command reference
- docs/stylesheets/extra.css - ADHD-friendly visual enhancements

Modified files:
- docs/index.md - Added TL;DR callout and path selection grid
- mkdocs.yml - Updated navigation with new pages

Features:
- Progressive disclosure design (quick wins up front)
- Visual hierarchy with colored callout boxes
- Print-friendly reference card
- Grid-based path selection on homepage
- Dark mode support for all new styles
- Mobile responsive design

Impact: Improves discoverability, reduces cognitive load, provides
clear entry points for different learning styles.

Based on complete implementation spec (1,270 lines)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: add project cache & auto-discovery enhancement plan

New spec: SPEC-project-cache-auto-discovery.md
- Comprehensive 3-phase implementation plan
- Phase 1 (v5.6.0): Caching layer for 40x performance
- Phase 2 (v5.7.0): Auto-discovery for zero config
- Phase 3 (v5.8.0): Unified type detection

Code review completed:
- lib/project-detector.zsh (131 lines)
- commands/pick.zsh (974 lines)
- Rating: 8.5/10
- Identified: performance bottleneck, extensibility issues

Updated .STATUS:
- Added Sprint 6 roadmap (v5.6.0-v5.8.0, ~14 hours)
- Updated Next Steps with new option B
- Updated Just Completed section
- Progress: 18% → 19%

Impact: High performance gain + extensibility improvement
Risk: Low (opt-in rollout, extensive testing)

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

* chore: add exec zsh to approved Bash commands

- Added 'Bash(exec zsh)' to approved commands list
- Allows shell reload during workflow operations

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

* docs: formalize mandatory git workflow protocol

Major updates to workflow documentation:

BRANCH-WORKFLOW.md:
- Added 'Mandatory Workflow Protocol' section
- Detailed 5-step workflow (planning → worktree → implementation)
- Tool usage constraints for Claude Code
- Abort conditions for protected branch operations
- Worktree isolation requirements
- Workflow validation checklist

CLAUDE.md:
- Expanded 'Git Workflow & Standards' section
- Explicit worktree creation protocol
- Critical rule: NEW session required after worktree creation
- Conventional commit standards
- Tool usage constraints
- ABORT conditions for Claude Code

Key workflow rules enforced:
1. Planning on dev branch only
2. No feature code on dev branch
3. Worktree isolation for all features
4. NEW Claude session required after worktree creation
5. Conventional commits mandatory
6. PR workflow for all merges (feature → dev → main)

Impact: Prevents common workflow violations
- No accidental commits to main/dev
- No working in wrong directory
- No mixing planning and implementation contexts
- Enforces branch protection rules

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

* test: add comprehensive test suites for pick & cc

New files:
- test-pick-command.zsh: 39 tests for pick functionality (556 lines)
  * Function existence (6 tests)
  * Frecency scoring (4 tests)
  * Project detection & listing (9 tests)
  * Session status indicators (4 tests)
  * Worktree detection (4 tests)
  * Pick invocation & edge cases (9 tests)
  * Aliases (3 tests)

Enhanced files:
- test-cc-dispatcher.zsh: Expanded to 37 tests (722 lines, +247)
  * Added unified grammar tests (4 tests)
  * Added shortcut expansion tests (4 tests)
  * Added explicit HERE tests (2 tests)
  * Added function existence tests (2 tests)

Coverage highlights:
- Pick: Frecency decay algorithm, session indicators, worktree integration
- CC: Mode-first & target-first patterns, shortcuts (y/p/o/h), validation

Test results: 76/76 passing (100%)

Fixes applied:
- Frecency scoring expectations (timestamp=0 returns 0)
- ANSI code stripping for help text matching
- Worktree test isolation (re-source plugin)
- Error message validation
- PATH restoration in edge cases

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

* docs: add comprehensive testing guide

New documentation:
- docs/guides/TESTING.md (comprehensive testing guide)
  * Test philosophy and architecture
  * Test file structure and patterns
  * Writing tests (6 patterns with examples)
  * Mock environment setup (projects, worktrees)
  * ANSI code handling for reliable assertions
  * Debugging test failures (4 strategies)
  * Best practices and TDD workflow
  * Coverage goals and CI integration

Updates:
- CLAUDE.md: Enhanced Testing section
  * Reference to new testing guide
  * Updated test suite overview (76+ tests)
  * Test coverage table
  * Quick verification commands

- mkdocs.yml: Updated Testing navigation
  * Points to guides/TESTING.md
  * Added 🧪 emoji for visibility

Coverage documented:
- Pick command: 39 tests (100%)
- CC dispatcher: 37 tests (100%)
- DOT dispatcher: 112+ tests (100%)
- Total: 76+ tests across 8 suites

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

* docs: update TESTING-QUICK-REF with v5.0.0 test suites

Updates:
- Added Core Test Suites section (v5.0.0+)
  * Table of 6 test files with coverage
  * 76+ tests total (100% passing)
  * Run all command: ./tests/run-all.sh
  * Link to Testing Guide

- Reordered sections
  * Core Test Suites (#1) - Primary test infrastructure
  * Interactive Dog Feeding (#2) - Manual validation
  * Automated Test Suite (#3) - Legacy
  * ZSH Configuration Tests (#4)

- Quick Commands section updated
  * Added run-all.sh
  * Added individual test suite commands
  * Shows coverage count (76+ tests)

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

* feat(cache): Project list caching with 5-minute TTL (v5.3.0) (#214)

* feat(cache): implement project list caching with 5-minute TTL

Implement Phase 1 of the project cache enhancement (v5.3.0) to achieve
sub-10ms performance for the pick command through intelligent caching.

Core Module (lib/project-cache.zsh - 170 lines):
- Cache generation with Unix timestamp header
- TTL-based validity checking (5-minute default, configurable)
- Auto-regeneration on missing/stale/corrupt cache
- Graceful fallback to uncached mode on errors
- Cache statistics and reporting
- User commands: flow cache refresh/clear/status

Integration:
- Modified commands/pick.zsh to use cached list access
- Added flow cache dispatcher to commands/flow.zsh
- Integrated cache module into flow.plugin.zsh
- XDG-compliant cache location: ~/.cache/flow-cli/projects.cache

Unit Tests (42 tests across 3 suites):
- Cache Access & Auto-Regeneration (16 tests)
- Cache Generation (10 tests)
- Cache Validation (16 tests)

Integration Tests (17 tests):
- End-to-end cache lifecycle
- User command validation
- Pick command integration

Interactive Tests (15 tests):
- ADHD-friendly dog-feeding test
- Enhanced with expected vs actual output comparison
- Gamification (streaks, bonuses, progress bars)

Total: 59 automated tests + 15 interactive = 74 tests
All tests passing with 100% function coverage

Guides:
- docs/guides/PROJECT-CACHE.md - Comprehensive implementation guide
- docs/reference/CACHE-QUICK-REFERENCE.md - Quick lookup card

Testing:
- tests/TEST-PLAN.md - Complete test strategy
- tests/TEST-RESULTS-ANALYSIS.md - Comprehensive results analysis
- tests/INTERACTIVE-CACHE-TEST-README.md - Interactive test guide
- tests/INTERACTIVE-TEST-IMPROVEMENTS.md - Enhancement details

Cache Management:
- Automatic cache generation on first use
- Auto-regeneration when cache is stale (> 5 min)
- Auto-regeneration when cache is corrupt
- Manual control via flow cache commands

Configuration:
- PROJ_CACHE_TTL - Custom TTL in seconds (default: 300)
- FLOW_CACHE_ENABLED - Enable/disable cache (default: 1)

User Commands:
- flow cache refresh - Force cache regeneration
- flow cache clear - Delete cache file
- flow cache status - Display cache statistics

Error Handling:
- Graceful fallback on all 5 failure modes
- No user-visible errors
- Transparent operation

Expected improvement: 40x speedup
- Before: ~200ms (filesystem scan)
- After: <10ms (cache read)
- Cache overhead: <1ms (TTL validation)

Implementation:
- lib/project-cache.zsh (new, 170 lines)
- commands/pick.zsh (modified, cache integration)
- commands/flow.zsh (modified, cache commands)
- flow.plugin.zsh (modified, load cache module)

Tests:
- tests/unit/test-cache-*.zsh (new, 3 files, 42 tests)
- tests/test-project-cache.zsh (modified, 17 integration tests)
- tests/interactive-cache-dogfeeding.zsh (new, 15 interactive tests)
- tests/test-utils.zsh (new, 20+ assertions)
- tests/run-unit-tests.zsh (new, test orchestrator)

Documentation:
- docs/guides/PROJECT-CACHE.md (new)
- docs/reference/CACHE-QUICK-REFERENCE.md (new)
- tests/TEST-PLAN.md (new)
- tests/TEST-RESULTS-ANALYSIS.md (new)
- tests/INTERACTIVE-*.md (new, 2 files)
- README.md (updated, performance section)
- CLAUDE.md (updated, v5.3.0 status)

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

* fix(cache): store complete list, filter at read time

Fix category filtering bug where cache stored filtered data but didn't
re-apply filters on retrieval, causing wrong results when different
filters were requested.

## Root Cause

Cache generated with filter (e.g. 'dev') but returned that filtered
data for ALL subsequent queries, ignoring the requested filter parameter.

Example of bug:
- pick dev → Cache stores: [dev projects only]
- pick r   → Cache returns: [dev projects] ❌ Wrong!

## Solution

Architecture change: Cache stores COMPLETE unfiltered project list,
filtering happens at read time using grep.

Benefits:
- Single cache serves all filter combinations
- No cache invalidation on filter changes
- Filtering is cheap (~1ms) vs scanning (~200ms)
- Eliminates entire class of filter-related bugs

## Implementation

lib/project-cache.zsh:
- _proj_cache_generate(): Remove "$@" - always cache everything
- _proj_list_all_cached(): Apply category/recent filters after read

tests/unit/test-cache-generation.zsh:
- Update tests to expect unfiltered cache contents

## Performance Impact

Before fix (broken):
- pick dev (first):  200ms (cache miss)
- pick r (second):   <1ms (wrong data from cache) ❌

After fix (correct):
- pick dev (first):  200ms (cache miss, caches ALL)
- pick r (second):   <2ms (cache hit + filter) ✅

Performance maintained: 100x speedup (2ms vs 200ms)

## Test Results

Before fix: 36/39 pick tests passing (92%)
After fix:  39/39 pick tests passing (100%)

All test suites:
- ✅ 39/39 pick command tests
- ✅ 42/42 cache unit tests
- ✅ 17/17 cache integration tests
- ✅ 98/98 total tests (100%)

Fixes #3 category filter test failures

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

---------

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>

* docs: highlight project cache performance in site

- index.md: Add cache note to Design Philosophy (40x faster)
- quick-reference-card.md: Note pick is cached for speed
- tutorials/02-multiple-projects.md: Add performance tip box

Subtle mentions of v5.3.0 cache feature where users first
encounter the pick command. Comprehensive guide already exists
at docs/guides/PROJECT-CACHE.md (439 lines).

Related: PR #214 - Project list caching with 5-minute TTL

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

* chore: bump version to 5.3.0

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Data-Wise added a commit that referenced this pull request Sep 5, 2026
create-github-app-token was called with no permission-* inputs, so the
minted token inherited EVERY permission the data-wise-homebrew-automation
installation holds on homebrew-tap, for the duration of the job — a job
that runs sed, git and gh against a live credential.

The step needs exactly two things: commit and push the formula edit
(contents: write), and open then auto-merge the bump PR
(pull-requests: write) — the latter added by #499.

Both are known-granted, not guessed: the App has authored 7 PRs on the tap
(#215, #214, #213, #212, #210, #209, #207) and merged its own (#212, #210
show mergedBy = app/data-wise-homebrew-automation), which requires
pull-requests: write; the formula pushes require contents: write.

Least privilege on an existing credential — no behaviour change intended.
create-github-app-token fails at mint time if a requested permission is not
granted, so a mismatch surfaces immediately rather than silently.

Verified: actionlint reports the same 2 pre-existing SC2086 infos before
and after (different step, not introduced here); YAML parses and both keys
land in the app-token step's with: block.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant