Skip to content

refactor: stop scaffolding legacy vibe.project.yaml; fix budget salvage#258

Merged
kiyeonjeon21 merged 2 commits into
mainfrom
refactor/retire-legacy-project-yaml
Jul 1, 2026
Merged

refactor: stop scaffolding legacy vibe.project.yaml; fix budget salvage#258
kiyeonjeon21 merged 2 commits into
mainfrom
refactor/retire-legacy-project-yaml

Conversation

@kiyeonjeon21

Copy link
Copy Markdown
Contributor

Second step of the scene-workspace declutter (agentic CLI UX). Approved plan phase B.

Problem

Every scaffold wrote both vibe.config.json (the authoritative V1 contract) and a legacy vibe.project.yaml, duplicating config in every project root. vibe.config.json is a strict superset, so the YAML is pure clutter. Separately, a legacy budget.maxUsd cap was silently dropped on load.

Change

  • Stop writing vibe.project.yaml in scaffoldSceneProject and vibe init. readProjectConfig still reads it (back-compat for existing projects).
  • Fix the salvage: map legacy budget.maxUsdbuild.maxCostUsd (consumed), ignoring the scaffold's maxUsd:0 default so 'no cap' doesn't become a $0 gate.
  • Update scaffold prose/file-lists + walkthroughs to name vibe.config.json; update tests to assert the YAML is no longer created; add project-config tests for the legacy read + salvage.

Verify

Build clean, lint 0, full suite green. E2E: vibe init --type scene writes vibe.config.json, no vibe.project.yaml; a legacy project with budget.maxUsd: 7 surfaces build.maxCostUsd === 7; scene detection still works via vibe.config.json. pre-push gate green.

No reader removed — legacy projects keep loading.

Every scaffold wrote both vibe.config.json (the authoritative V1 contract)
and a legacy vibe.project.yaml, duplicating config in every project root.
vibe.config.json is a strict superset, so the YAML is pure clutter.

- Stop writing vibe.project.yaml in scaffoldSceneProject and vibe init.
  readProjectConfig still reads it (back-compat for existing projects).
- Fix a latent bug: a legacy budget.maxUsd cap was dropped on load. Salvage
  it into build.maxCostUsd (which is consumed), ignoring the scaffold's
  maxUsd:0 default so 'no cap' doesn't become a $0 gate.
- Update scaffold prose/file-lists and walkthroughs to name vibe.config.json;
  update tests to assert the YAML is no longer created; add project-config
  tests covering the legacy read + salvage.

No reader removed — legacy projects keep loading.
@vercel

vercel Bot commented Jul 1, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
vibeframe Ready Ready Preview, Comment Jul 1, 2026 2:27am

Request Review

@kiyeonjeon21 kiyeonjeon21 merged commit ea1239a into main Jul 1, 2026
6 checks passed
@kiyeonjeon21 kiyeonjeon21 deleted the refactor/retire-legacy-project-yaml branch July 1, 2026 02:31
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