Spaces:
Running
Running
chore: close sprint 3, open sprint 4 with branching strategy
Browse files- Create sprint_2026_04.md with 4 priorities: branching/versioning,
run-time settings redesign, data narrative layer, 10k row test
- Add branching strategy to CLAUDE.md (main/develop/hotfix model)
- Update sprint pointer and history table in CLAUDE.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- CLAUDE.md +50 -3
- sprint_2026_04.md +144 -0
CLAUDE.md
CHANGED
|
@@ -70,10 +70,56 @@ The user may be running a live demo on HF. Pushing without permission can break
|
|
| 70 |
|
| 71 |
## Current Sprint
|
| 72 |
|
| 73 |
-
**ALWAYS READ FIRST**: `
|
| 74 |
|
| 75 |
For overall project status, see `PROJECT_STATUS.md` in root.
|
| 76 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 77 |
### Sprint Doc Workflow - IMPORTANT
|
| 78 |
|
| 79 |
**This is how we stay organized. Follow this process consistently:**
|
|
@@ -375,7 +421,8 @@ All docs live in `dev_notes/` unless noted. When in doubt about how something wo
|
|
| 375 |
### Sprint History
|
| 376 |
| Doc | Status |
|
| 377 |
|-----|--------|
|
| 378 |
-
| `
|
|
|
|
| 379 |
| `sprint_2026_02.md` *(root)* | Closed β February/March |
|
| 380 |
| `sprint_2026_01.md` *(root)* | Closed β January |
|
| 381 |
|
|
@@ -384,5 +431,5 @@ All docs live in `dev_notes/` unless noted. When in doubt about how something wo
|
|
| 384 |
|
| 385 |
---
|
| 386 |
|
| 387 |
-
*Last Updated: April
|
| 388 |
*This is the source of truth - update rules here, not in .cursorrules*
|
|
|
|
| 70 |
|
| 71 |
## Current Sprint
|
| 72 |
|
| 73 |
+
**ALWAYS READ FIRST**: `sprint_2026_04.md` (in root)
|
| 74 |
|
| 75 |
For overall project status, see `PROJECT_STATUS.md` in root.
|
| 76 |
|
| 77 |
+
---
|
| 78 |
+
|
| 79 |
+
## Branching Strategy
|
| 80 |
+
|
| 81 |
+
**Three-branch model: `main` / `develop` / hotfix**
|
| 82 |
+
|
| 83 |
+
| Branch | Purpose | Deploys to |
|
| 84 |
+
|--------|---------|------------|
|
| 85 |
+
| `main` | Production β always stable and shippable | `hf` (prod) |
|
| 86 |
+
| `develop` | Sprint integration β current sprint work | `hf-test` |
|
| 87 |
+
| `feature/*` | Individual features β branch off `develop` | local / `hf-test` |
|
| 88 |
+
|
| 89 |
+
### Rules
|
| 90 |
+
|
| 91 |
+
**Normal sprint work:**
|
| 92 |
+
```bash
|
| 93 |
+
git checkout develop
|
| 94 |
+
git checkout -b feature/my-thing
|
| 95 |
+
# ... work ...
|
| 96 |
+
git checkout develop && git merge feature/my-thing
|
| 97 |
+
git push hf-test develop:main # deploy to test
|
| 98 |
+
```
|
| 99 |
+
|
| 100 |
+
**Shipping to prod (end of sprint or stable milestone):**
|
| 101 |
+
```bash
|
| 102 |
+
git checkout main && git merge develop
|
| 103 |
+
git push hf main # deploy to prod
|
| 104 |
+
git push origin main
|
| 105 |
+
git tag v1.x.x && git push origin --tags
|
| 106 |
+
```
|
| 107 |
+
|
| 108 |
+
**Hotfix to prod (urgent fix while sprint work is in develop):**
|
| 109 |
+
```bash
|
| 110 |
+
git checkout main
|
| 111 |
+
git checkout -b hotfix/description
|
| 112 |
+
# ... fix ...
|
| 113 |
+
git checkout main && git merge hotfix/description
|
| 114 |
+
git push hf main # deploy to prod immediately
|
| 115 |
+
git checkout develop && git merge hotfix/description # keep develop in sync
|
| 116 |
+
git push hf-test develop:main
|
| 117 |
+
git push origin main develop
|
| 118 |
+
```
|
| 119 |
+
|
| 120 |
+
> **Never push sprint/feature work directly to `main`.
|
| 121 |
+
> Never push to `hf` (prod) from anything other than `main`.**
|
| 122 |
+
|
| 123 |
### Sprint Doc Workflow - IMPORTANT
|
| 124 |
|
| 125 |
**This is how we stay organized. Follow this process consistently:**
|
|
|
|
| 421 |
### Sprint History
|
| 422 |
| Doc | Status |
|
| 423 |
|-----|--------|
|
| 424 |
+
| `sprint_2026_04.md` *(root)* | **Current sprint** β read this at the start of every session |
|
| 425 |
+
| `sprint_2026_03.md` *(root)* | Closed β March/April |
|
| 426 |
| `sprint_2026_02.md` *(root)* | Closed β February/March |
|
| 427 |
| `sprint_2026_01.md` *(root)* | Closed β January |
|
| 428 |
|
|
|
|
| 431 |
|
| 432 |
---
|
| 433 |
|
| 434 |
+
*Last Updated: April 29, 2026*
|
| 435 |
*This is the source of truth - update rules here, not in .cursorrules*
|
sprint_2026_04.md
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Sprint: May 2026
|
| 2 |
+
|
| 3 |
+
*Started: April 29, 2026*
|
| 4 |
+
*Previous sprint: `sprint_2026_03.md` (closed β March/April)*
|
| 5 |
+
|
| 6 |
+
---
|
| 7 |
+
|
| 8 |
+
## Context
|
| 9 |
+
|
| 10 |
+
App is live in production. Core pipeline is stable (6β7/8 tests passing consistently).
|
| 11 |
+
This sprint focuses on developer workflow, UX improvements, and data quality before
|
| 12 |
+
expanding the user base further.
|
| 13 |
+
|
| 14 |
+
---
|
| 15 |
+
|
| 16 |
+
## Branch Strategy
|
| 17 |
+
|
| 18 |
+
- **`main`** β always reflects production (`hf` remote). Only merge here when ready to ship.
|
| 19 |
+
- **`develop`** β integration branch for this sprint. Deploys to `hf-test`.
|
| 20 |
+
- **Feature branches** β branch off `develop`, merge back to `develop` when done.
|
| 21 |
+
- **Hotfixes** β branch off `main`, fix, merge to `main` AND `develop`, push to `hf`.
|
| 22 |
+
|
| 23 |
+
> See CLAUDE.md "Branching Strategy" section for full workflow rules.
|
| 24 |
+
|
| 25 |
+
---
|
| 26 |
+
|
| 27 |
+
## Sprint Priorities
|
| 28 |
+
|
| 29 |
+
### Priority 1 β Branching / Release Strategy β
(set up at sprint start)
|
| 30 |
+
|
| 31 |
+
- [x] Define `main` / `develop` / hotfix workflow β documented in CLAUDE.md
|
| 32 |
+
- [ ] Create `develop` branch from current `main`
|
| 33 |
+
- [ ] Update CI/push targets: sprint work β `hf-test` via `develop`; prod fixes β `hf` via `main`
|
| 34 |
+
- [ ] Add git tag for current prod release (`v1.0.0` or similar) before new sprint work begins
|
| 35 |
+
|
| 36 |
+
---
|
| 37 |
+
|
| 38 |
+
### Priority 2 β Run-Time Settings Redesign
|
| 39 |
+
|
| 40 |
+
**Goal:** All pipeline control knobs are live on the app screen. No save/reload cycle.
|
| 41 |
+
Setting a value takes effect for the next run immediately. Defaults come from Supabase
|
| 42 |
+
admin settings, but can be overridden at runtime without touching the database.
|
| 43 |
+
|
| 44 |
+
**Right panel layout:**
|
| 45 |
+
```
|
| 46 |
+
βββββββββββββββββββββββββββββββ
|
| 47 |
+
β TS Environment [dropdown] β β always visible
|
| 48 |
+
β AI Model [dropdown] β β always visible
|
| 49 |
+
βββββββββββββββββββββββββββββββ€
|
| 50 |
+
β βΆ Advanced Settings β β accordion, collapsed by default
|
| 51 |
+
β Liveboard Name [text] β
|
| 52 |
+
β Data Size [dropdown] (Small / Medium / Standard / Large)
|
| 53 |
+
β Geo Scope [dropdown] (USA Only / International)
|
| 54 |
+
β [other knobs as added] β
|
| 55 |
+
βββββββββββββββββββββββββββββββ
|
| 56 |
+
β Pipeline Status / Progress β β below settings
|
| 57 |
+
β [stage indicators] β
|
| 58 |
+
βββββββββββββββββββββββββββββββ
|
| 59 |
+
```
|
| 60 |
+
|
| 61 |
+
**Rules:**
|
| 62 |
+
- Values shown are loaded from user's saved settings (Supabase) at page load
|
| 63 |
+
- Changing a value in the panel takes effect immediately for the current session β no Save button needed
|
| 64 |
+
- "Save as default" option (optional, later) β writes back to Supabase
|
| 65 |
+
- Eliminates the separate Settings tab for pipeline-control settings (those move here)
|
| 66 |
+
- Settings tab becomes admin/account settings only (TS credentials, user preferences)
|
| 67 |
+
|
| 68 |
+
**Tasks:**
|
| 69 |
+
- [ ] Audit all Settings tab fields β categorize as (a) run-time knobs or (b) admin/account
|
| 70 |
+
- [ ] Move run-time knobs to right panel with accordion
|
| 71 |
+
- [ ] Wire values to controller at run time (not just at session init)
|
| 72 |
+
- [ ] Remove save/reload dependency for pipeline settings
|
| 73 |
+
- [ ] Update `fact_table_size`, `dim_table_size`, `geo_scope`, `liveboard_name` to read from panel state
|
| 74 |
+
|
| 75 |
+
---
|
| 76 |
+
|
| 77 |
+
### Priority 3 β Data Narrative Layer
|
| 78 |
+
|
| 79 |
+
**Goal:** Generated data tells the right story. Numbers reflect KPI targets, business context,
|
| 80 |
+
and the outlier patterns the liveboard is designed to highlight.
|
| 81 |
+
|
| 82 |
+
**Problem:** The data generator knows column names and types but not what story the data
|
| 83 |
+
should tell. KPI targets, growth trends, and anomaly patterns live in the matrix
|
| 84 |
+
(`uc_config`) but never reach `populate_demo_data`.
|
| 85 |
+
|
| 86 |
+
**Approach:**
|
| 87 |
+
- [ ] Research: audit what's in `uc_config` that's relevant to data generation (KPI definitions, story questions, outlier targets)
|
| 88 |
+
- [ ] Design: define a `DataNarrativeSpec` β per-column target ranges, trend direction, key outlier rows
|
| 89 |
+
- [ ] Pass `DataNarrativeSpec` from matrix config into `populate_demo_data` / LegitData
|
| 90 |
+
- [ ] Generator uses spec to set realistic value ranges for numeric columns (revenue, churn, margin, etc.)
|
| 91 |
+
- [ ] Outlier injection: a small number of rows (3β5%) hit the "interesting" values the liveboard questions are designed to surface
|
| 92 |
+
|
| 93 |
+
---
|
| 94 |
+
|
| 95 |
+
### Priority 4 β 10k Row Test
|
| 96 |
+
|
| 97 |
+
**Goal:** Confirm the "large" preset (10k fact rows) works end-to-end and produces better liveboard quality.
|
| 98 |
+
|
| 99 |
+
**Known issues to solve in test:**
|
| 100 |
+
- Settings cached at controller init β test must change setting β trigger fresh session β run pipeline
|
| 101 |
+
- 10k runs will be ~3β4x slower β bump test timeout for large-preset tests
|
| 102 |
+
- Validate that `is_fact_table` name-based detection correctly assigns 10k rows (not 500)
|
| 103 |
+
|
| 104 |
+
**Tasks:**
|
| 105 |
+
- [ ] Add `fact_table_size=10000` variant to test suite (separate test case or flag)
|
| 106 |
+
- [ ] Implement session reset between setting change and run in test harness
|
| 107 |
+
- [ ] Increase timeout for large-preset test cases
|
| 108 |
+
- [ ] Compare data/liveboard quality scores: 1k vs 10k on same company/use case
|
| 109 |
+
|
| 110 |
+
---
|
| 111 |
+
|
| 112 |
+
## Next Priorities (from status report "Working On Next")
|
| 113 |
+
|
| 114 |
+
- [ ] **Async pipeline** β data population + TS model creation currently sequential; run in parallel to cut total pipeline time
|
| 115 |
+
- [ ] **Enablement** β HTML user guide (full page on HF doc space, not just the markdown draft); demo videos
|
| 116 |
+
- [ ] **Matrix field input** β story definitions need field review; liveboard makeup and key outlier questions per vertical
|
| 117 |
+
|
| 118 |
+
---
|
| 119 |
+
|
| 120 |
+
## Backlog (leftover from Sprint 3, lower priority)
|
| 121 |
+
|
| 122 |
+
- [ ] Unified Outlier System β quality not there yet
|
| 123 |
+
- [ ] Demo Pack Generation
|
| 124 |
+
- [ ] Chart titles / viz naming
|
| 125 |
+
- [ ] Tag assignment to models (returns 404; works for tables)
|
| 126 |
+
- [ ] Fix Research Cache Not Loading
|
| 127 |
+
- [ ] Fix DAYSONHAND Generation (currently random, needs business logic)
|
| 128 |
+
- [ ] MCP 500 retry logic
|
| 129 |
+
- [ ] Model Generator: Chasm Trap Fix
|
| 130 |
+
- [ ] Dead code cleanup (model TML generators)
|
| 131 |
+
- [ ] Incorporate Snowflake row counts into quality test data grading score
|
| 132 |
+
- [ ] AI Feedback verbosity
|
| 133 |
+
- [ ] `viz_type` enforcement (matrix chart type hints β override TS defaults)
|
| 134 |
+
- [ ] Actual data outliers β liveboard (`data_outliers` param ready, needs connection)
|
| 135 |
+
|
| 136 |
+
---
|
| 137 |
+
|
| 138 |
+
## Done
|
| 139 |
+
|
| 140 |
+
*(items move here as completed)*
|
| 141 |
+
|
| 142 |
+
---
|
| 143 |
+
|
| 144 |
+
*Last updated: April 29, 2026*
|