Files
failwell/CLAUDE.md

70 lines
2.0 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Fail Well is a Progressive Web App (PWA) for tracking developer feedback loops during coding tasks. It helps compare planned steps/time vs actual execution, promoting iterative improvement.
A task is a set of items and it looks like this:
```md
- First task | 5
- Second task | 4
```
The last part after the last `|` is the estimated time of the task item in minutes.
## Commands
```bash
# Development
pnpm dev # Start Vite dev server
# Building
pnpm build # Full build (types + tests + bundle)
pnpm build-only # Vite build only
# Testing
pnpm test # Full test suite (lint + types + unit)
pnpm test:unit # Vitest unit tests only
pnpm test:ui # Vitest with UI dashboard
pnpm test:types # TypeScript type checking
# Code Quality
pnpm lint # ESLint with auto-fix
pnpm format # Prettier formatting
# Commits
pnpm commit # Commitizen conventional commit prompt
```
## Architecture
**Tech Stack:** Vue 3 + TypeScript + Vite + Pinia + Bulma CSS
**Module Structure:**
- `src/modules/` - Feature modules with self-contained components, stores, models, and services
- `record/` - Task execution tracking (time, steps, break calculation)
- `task/` - Task CRUD, step history, duplication
- `step/` - Step-related components
- `src/views/` - Page-level components organized by feature
- `src/shared/` - Shared types and hooks
- `src/router/` - Vue Router configuration
**State Management:** Pinia stores with `pinia-plugin-persistedstate` for local persistence
**Key Routes:**
- `/` - Task list
- `/task/:id` - Task details
- `/task/:id/edit` - Edit steps
- `/task/:taskId/record` - Record task execution
## Testing
Uses Vitest with jsdom environment. Test files are colocated with source files using `.spec.ts` suffix.
Run single test file: `pnpm vitest run path/to/file.spec.ts`