Skip to content

docs: phased roadmap → founder-set MVP ladder (explorer → restructure → v0.1.0 → extension → MVP) - #211

Merged
cmbays merged 3 commits into
mainfrom
docs-roadmap-mvp-ladder
Jun 11, 2026
Merged

cmbays merged 3 commits into
mainfrom
docs-roadmap-mvp-ladder

Conversation

@cmbays

@cmbays cmbays commented Jun 11, 2026 •

Copy link
Copy Markdown
Contributor

Replaces the stale v0.2/v0.3 phased-roadmap table in CLAUDE.md with the MVP ladder set by the founder on 2026-06-10:

  1. Baseline feature set (on main; in-flight design Phase-2 + coverage waves)
  2. Explorer arc — epic epic: interactive model explorer (cute-dbt explore subcommand) #99 (V1–V6, feature: external-drive contract — host bridge (postMessage + DOM attr) + focusModel/setView + payload file paths #105 host-bridge contract, feature: explore — PR-diff change context (highlight changed models on the full graph) #106 pr-diff change context)
  3. Repo restructure — epic Epic: repo restructure — Cargo workspace split + monorepo layout (crates/ + editors/) #209 (workspace split + monorepo layout, ADR-gated)
  4. v0.1.0 (founder's call; unblocks Marketplace action / workflow template / private delivery; cargo-dist binaries feed Homebrew, PyPI is a shaping candidate)
  5. VS Code extension — epic Epic: VS Code extension — in-tree editors/vscode webview explorer (DAG + tests panes, editor sync) #210 (in-tree, editors/vscode)
  6. Full mdbook pass → MVP declaration

Docs-only; the old v0.2/v0.3 rows described work already shipped or superseded. The single-crate identity language elsewhere in CLAUDE.md/AGENTS.md stays as-is until #209 lands (docs reflect present reality; the table carries the plan).

🤖 Generated with Claude Code


Open in Stage

@coderabbitai

coderabbitai Bot commented Jun 11, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@cmbays, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 1 minute and 12 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 3d49f9c3-d847-48f8-982a-8f3272e52495

📥 Commits

Reviewing files that changed from the base of the PR and between e486caf and f95163d.

📒 Files selected for processing (3)
  • .gitignore
  • CLAUDE.md
  • PR_BODY.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs-roadmap-mvp-ladder

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ghost

ghost commented Jun 11, 2026 •

Copy link
Copy Markdown

Ready to review this PR? Stage has broken it down into 2 individual chapters for you:

Title
1 Clean up repository root and ignore scratch files
2 Update roadmap to founder-set MVP ladder
Open in Stage

Chapters generated by Stage for commit f95163d on Jun 11, 2026 2:36am UTC.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the CLAUDE.md file to revise the project's phased roadmap, replacing the previous v0.1 to v1.0 plan with a more detailed 'MVP ladder' that outlines specific epics, milestones, and release strategies. There are no review comments, and I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

@github-actions

github-actions Bot commented Jun 11, 2026 •

Copy link
Copy Markdown
Contributor

📄 Rendered report preview

All golden examples regenerated cleanly.

🟡 Golden examples

Committed to examples/ and byte-identity gated — the canonical reports contributors and consumers browse. Stable across PRs.

Report View Download
playground-report.html ▶ Open ↗ ⬇ Download
jaffle-shop-report.html ▶ Open ↗ ⬇ Download
diff-showcase-report.html ▶ Open ↗ ⬇ Download

🐶 Live dogfood preview

This PR doesn't touch dbt-project/, so there's no live dogfood preview.

▶ Open ↗ opens the report in your browser in one click —
published to this repo's GitHub Pages under /pr-211/.
⬇ Download fetches the same self-contained HTML as a workflow
artifact (auth-gated; works fully offline). Either way the report
makes zero external resource requests.

The Pages preview may take ~1 min to update after this comment
posts. On PRs from forks the Open link is unavailable (read-only
token) — use Download.

Alternative: GitHub CLI
# gh CLI >= 2.63 extracts into ./report-preview-playground/.
gh run download 27320024283 -R breezy-bays-labs/cute-dbt -n report-preview-playground
open report-preview-playground/playground-report.html

Posted by report-preview.yml for f95163ded96d53bb32c3665864828b0d5eb3365a. Affordance only — never blocks merge.

@cmbays

cmbays commented Jun 11, 2026

Copy link
Copy Markdown
Contributor Author

Scope note: this PR now also carries two repo-hygiene commits — the scratch .gitignore guards, and removal of the accidentally-committed PR_BODY.md (the #115 PR-body draft that rode that squash into main; pattern gitignored to prevent recurrence).

github-actions Bot and others added 3 commits June 10, 2026 22:36
Encodes the 2026-06-10 direction: explorer arc (#99) → workspace/monorepo
restructure (#209) → v0.1.0 → in-tree VS Code extension (#210) → mdbook
pass → MVP. The old v0.2/v0.3 rows described work already shipped or
superseded.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tmp)

Root-hygiene guard after sweeping 34 untracked scratch files (session
screenshots, logs) out of the repo root on 2026-06-10.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… pattern

The #115 PR-body draft (written for gh pr create --body-file) rode that
PR's squash into main. PR-body drafts belong in /tmp.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@cmbays
cmbays force-pushed the docs-roadmap-mvp-ladder branch from d6e6c1b to f95163d Compare June 11, 2026 02:36
@cmbays
cmbays merged commit 1ebb625 into main Jun 11, 2026
32 checks passed
@cmbays
cmbays deleted the docs-roadmap-mvp-ladder branch June 11, 2026 02:41
github-actions Bot added a commit that referenced this pull request Jun 11, 2026
cmbays pushed a commit that referenced this pull request Jun 11, 2026
…mini fix delta)

All three examples re-rendered per the example-report-check recipe after
merging origin/main (#204/#205/#211/#212). Byte audit: every changed
line traces to the truthful fold-toggle/copy-outcome fix (a4c95d7) —
main's cross-join/source-binding golden content came through the merge
intact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
cmbays pushed a commit that referenced this pull request Jun 11, 2026
…mini fix delta)

All three examples re-rendered per the example-report-check recipe after
merging origin/main (#204/#205/#211/#212). Byte audit: every changed
line traces to the truthful fold-toggle/copy-outcome fix (a4c95d7) —
main's cross-join/source-binding golden content came through the merge
intact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
cmbays added a commit that referenced this pull request Jun 11, 2026
…ng, split-view folds, per-diff fold toggle, copy-icon buttons (#213)

* feat(render): design-2 fold steppers — gutter +/− steppers, expand-step setting, split-view folds, per-diff fold toggle, copy-icon buttons

Ports the pass-2 directional fold model onto the shipped diff renderers
(cute-dbt#199, design package design-return-2):

- settings.expandStep in cute-dbt.settings.v1 (default 20, clamp 0–500,
  0 = all; NaN-tolerant hydrate) + the static #settings-expand-step row
  (the #188 static-markup contract). Read live by expandFold/contractFold
  — no re-render on change.
- Unified renderer: data-fold-dir (leading fold expands UP toward the
  hunk, else DOWN), gutter .fold-steppers (+ by step / − by step,
  disabled at bounds), per-hunk .fold-collapse-all once anything is
  revealed, label progression Show N unchanged lines → All N lines
  shown, and updateFoldControl re-parks the control adjacent to the
  remaining hidden run (below the run when fully revealed). Reveal stays
  parent-scoped via closest(code, tbody) — the #132 duplicate-fold-id
  rule.
- Split renderer folds long context runs with the SAME fold model (fold
  row: stepper gutter + colspan label cell) and gains the
  ds-c-num/ds-c-code colgroup (3.8em/auto) for a true 50/50; setAllFolds
  drives both layouts from one control set, so __cuteExpandAllFolds /
  __cuteCollapseAllFolds keep mirroring every fold control (label +
  aria-expanded + steppers + collapse-all — the #136 symmetric-mirror
  invariant on the new anatomy).
- Per-diff fold toggle (buildFoldToggleBtn, aria-pressed) in the
  Model-SQL and Model-YAML diff code headers; the #132 top-of-report
  .diff-expand-all strip is removed (diffAllExpanded /
  renderExpandAllToggle / bindDiffViewControls retired with it).
- copyIconBtn (inline-SVG icon, aria-label Copy, copied-class flash,
  execCommand fallback) replaces the absolutely-positioned text Copy in
  the Model-SQL header and is added to the Model-YAML header; code-header
  padding per engine/base.css. Functional-SVG-only iconography (README
  §2.4) — no icon fonts, nothing external, zero-egress untouched.

No payload change; no src/domain change. Goldens + insta snapshots
regenerated — every changed byte traces to this delta.

Closes #199

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* test: supersede the #132/#136 fold guards with the #199 step-expansion contract

Deliberate guard migration (never deleted, each replaced with the
new-behavior assertion):

- block_diff_folds_long_context_runs_and_reveals_on_activate: activate =
  expand-by-step (default step 20 >= hidden 4 still reveals all in one
  activation); the 'Hide N unchanged lines' relabel assertion is
  superseded by 'All N lines shown' + disabled + stepper + visible
  collapse-all; re-collapse moved from band-click to the explicit
  .fold-collapse-all. Kept: parent-scoped reveal, control stays visible,
  aria-expanded truth, Enter/Space keyboard activation, short-block
  never folds, new data-fold-dir/steppers markup assertions.
- global_expand_collapse_mirrors_every_fold: the #136 bidirectional
  mirror retained on the new control anatomy (label, stepper
  disabled-states, collapse-all visibility); now also pins the retired
  top-of-report .diff-view-controls strip at 0 nodes.
- settings_context_lines_refolds_block_diffs_live: contextLines
  re-render still live; extended with the expandStep no-re-render proof
  (a block mounted before the setting change steps by the new value).
- split_diff_renders_the_same_block_diff_as_unified: parity extends to
  folds — same directional control anatomy, count, colgroup geometry,
  band activation + setAllFolds mirror on the split tbody.
- model_sql_section_defaults_to_diff_and_toggles_to_raw /
  yaml_diff_drawer_defaults_to_diff_and_toggles_to_authored: assert the
  per-diff fold toggle + the inline-SVG copy-icon button (real focusable
  <button>, aria-label Copy) in both code headers.
- NEW expand_step_steppers_reveal_contract_directionally_and_persist:
  + reveals exactly step lines toward the hunk, − re-hides them
  mirroring direction, collapse-all restores, up/down direction proofs,
  control re-parking, and cute-dbt.settings.v1 persistence across
  reload.
- NEW per_diff_fold_toggle_drives_its_own_diffs_folds: the header
  toggle expands/restores every fold in its own diff (unified + split)
  with aria-pressed + label tracking.

render_block_diff_honors_a_configurable_fold_pad is unchanged — its
fold-pad arithmetic and labels survive the new model.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(render): truthful fold-toggle + copy outcome state (Gemini PR #213 findings)

Applies all three Gemini findings — each holds the new controls to the
same symmetric-DOM-mirror standard the #136 guards assert:

1. copyIconBtn signals failure truthfully: success flashes 'copied',
   failure flashes 'copy-failed' (title AND aria-label carry the
   outcome; both reset after the flash). Write strategy now mirrors
   copySql — writeText, then the shared execCommand fallbackCopy (which
   reports its own success) on rejection/absence. The .copy-failed CSS
   is no longer dead.
2. buildFoldToggleBtn is stateless: the click derives intent from the
   DOM at activation time (any hidden folded line in this diff =>
   expand-all, else collapse-all) instead of a cached boolean that
   desyncs under per-hunk stepping or the __cute hooks.
3. setAllFolds keeps the per-diff toggles truthful: every fold mutation
   funnels through updateFoldControl -> syncFoldToggles, which relabels
   each toggle (text + aria-pressed) from ITS OWN diff's DOM truth via
   the root accessor stored on the element. Per-root truth is
   deliberately stronger than relabeling 'toggles in scope' to one
   shared state: a partial-scope op never lies about an untouched
   sibling diff, and per-hunk steppers stay covered too.

New/extended guards (headless_toggle):
- per_diff_fold_toggle_drives_its_own_diffs_folds: (a) global
  __cuteExpandAllFolds flips the toggle's label/aria-pressed; a click
  after the global op acts on DOM truth and collapses; (b) stepping the
  unified fold fully keeps the toggle truthful while the split twin
  still holds hidden rows, and the next click expands the remainder.
- NEW copy_icon_button_signals_failure_truthfully: both write paths
  stubbed to fail in-page (writeText rejects, execCommand false) =>
  copy-failed + 'Copy failed' title/aria-label, never 'copied', reset
  to rest state after the flash.

insta render_integration snapshot regenerated (inlined interaction.js).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore: regenerate goldens on the merged tree (main @ 3cd2441 + the Gemini fix delta)

All three examples re-rendered per the example-report-check recipe after
merging origin/main (#204/#205/#211/#212). Byte audit: every changed
line traces to the truthful fold-toggle/copy-outcome fix (a4c95d7) —
main's cross-join/source-binding golden content came through the merge
intact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Fable 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