Analysis/_bmad-output/implementation-artifacts/2-5-exclusion-non-destructive-de-donnees.md
2026-01-11 22:56:02 +01:00

59 lines
2.3 KiB
Markdown

# Story 2.5: Exclusion Non-Destructive de Données
Status: review
## Story
As a Julien (Analyst),
I want to toggle the inclusion of specific rows in the analysis,
so that I can test different scenarios without deleting data.
## Acceptance Criteria
1. **Row Toggle:** Users can click a "checkbox" or a specific "Exclude" button on each row.
2. **Visual Feedback:** Excluded rows are visually dimmed (e.g., 30% opacity) and struck through.
3. **Bulk Toggle:** Ability to exclude all filtered rows or all rows matching a criteria (already partially covered by Epic 2.4).
4. **State Persistence:** Exclusion state is tracked in the global store.
5. **Impact on Analysis:** The data sent to subsequent analysis engines (Correlation, Regression) MUST exclude these rows.
## Tasks / Subtasks
- [x] **Grid UI Update** (AC: 1, 2)
- [x] Add an `Exclude` column with a toggle switch or button to the `SmartGrid`.
- [x] Implement conditional styling for the entire row based on exclusion state.
- [x] **State Logic** (AC: 4)
- [x] Ensure `excludedRows` in `useGridStore` is properly integrated with all UI components.
- [x] **Data Pipeline Prep** (AC: 5)
- [x] Create a selector/helper `getCleanData()` that returns the dataset minus the excluded rows.
## Dev Notes
- **UX:** Added a dedicated "Eye/EyeOff" icon column for quick row exclusion toggling.
- **Visuals:** Excluded rows use `opacity-30`, `line-through`, and a darker background to clearly distinguish them from active data.
- **Selector:** The `getCleanData` function in the store ensures all future analysis steps only receive valid, included rows.
### Project Structure Notes
- Modified `frontend/src/store/use-grid-store.ts`.
- Updated `frontend/src/features/smart-grid/components/SmartGrid.tsx`.
### References
- [Source: epics.md#Story 2.5]
- [Source: ux-design-specification.md#2.5 Experience Mechanics]
## Dev Agent Record
### Agent Model Used
{{agent_model_name_version}}
### Completion Notes List
- Implemented a "soft delete" system for row exclusion.
- Added visual indicators (strike-through and dimming) for excluded rows.
- Created a `getCleanData` selector to facilitate downstream statistical modeling.
- Integrated row-level toggle buttons directly in the SmartGrid.
### File List
- /frontend/src/store/use-grid-store.ts
- /frontend/src/features/smart-grid/components/SmartGrid.tsx