Skip to content

Drop the starter patch; template is the bundled builder-code-starter - #416

Merged
samijaber merged 2 commits into
templatefrom
drop-starter-patch
Oct 8, 2026
Merged

samijaber merged 2 commits into
templatefrom
drop-starter-patch

Conversation

@samijaber

@samijaber samijaber commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Why: the starter was agent-native's templates/chat turned into a blank app by .github/starter-patch/apply.ts, which made about 26 exact search/replace edits, copied an overlay and deleted about 40 paths on every sync. Each upstream wording change broke it (#409, #413, and BuilderIO/agent-native#6872 → #415). BuilderIO/agent-native#6936 bundles the finished tree as core's builder-code-starter template, and the mirror pushes it here directly. No string replaces remain. The bundled template is a layer over Chat (a base copy, a delete list, whole-file overrides and a JSON-merged package.json), so Chat's other files and dependency bumps still reach the starter on every sync.

What:

  • Deletes .github/starter-patch/ and verify-starter-patch.yml. Its ! grep -q … assertions never failed: bash ignores set -e for !-prefixed commands.
  • sync.yml drops the template archive, --restore-owned-only, the delete-list conflict loop and both apply.ts calls.
  • Kept: the merge, the .github removal from main, the pnpm-lock conflict path, skills update scaffold, install, dedupe, typecheck, build, doctor, the push and the golden snapshot request.
  • skills update failures now emit a warning instead of || true.
  • Side fix: the old flow ran git add -A before reading unmerged paths, which cleared the unmerged state and hid real conflicts. With the restore block gone, conflicts are detected again.

Merge proof (run in a clone of starter main at 2866f5e, with a fake template commit holding a locally materialized builder-code-starter tree from BuilderIO/agent-native#6936):

  • The first sync is not a no-op. Seven files conflict because main holds the old patch output and the merge base is pristine Chat: .agents/skills/build-an-app/SKILL.md, DEVELOPING.md, actions/navigate.ts, app/root.tsx, drizzle/schema.ts, package.json, pnpm-workspace.yaml. So the new sync.yml will open a sync-conflict PR.
  • Resolve it by taking the template's version of every path it ships:
    git checkout origin/template -- $(git ls-tree -r --name-only origin/template | grep -v '^\.github/')
    
  • After that resolution, 16 files change on main. pnpm install, skills update scaffold (21 skills, all current), pnpm dedupe, pnpm typecheck, pnpm build and agent-native doctor all pass (doctor: no findings).
  • A following template push (a core bump plus edits to DEVELOPING.md and the shared vite.config.ts) merges with no conflicts.

Rollout order:

  1. Merge this PR and Bundle the Builder Code starter as a core template layered over Chat agent-native#6936.
  2. Wait for the next agent-native core release. The mirror pushes only once that core version is on npm, and that release is the first core whose skills update knows the builder-code-starter policy.
  3. Resolve the first sync-conflict PR as described above.
  4. Existing Fusion apps keep scaffold.template: "chat" and keep Chat skills.

🤖 Generated with Claude Code

https://claude.ai/code/session_015nA3CjCBcG8kbGZb4hK6DL

Comment thread .github/workflows/sync.yml Outdated
Comment thread .github/workflows/sync.yml Outdated
# Vendor-branch mirror (starter side). Agent-Native materializes its bundled
# `fusion-starter` template (packages/core/src/templates/fusion-starter) and
# pushes it to this repo's `template` branch; this workflow git-merges that
# branch into `main`, preserving the private customization layer. The starter

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

do we need a private customization layer still? are we still doing anything here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Mostly not any more. "Private customization layer" means whatever is committed straight to main and not shipped by template. Before this PR that was mainly the patch output, and that now comes from the template. Some files were still added directly on main, in 520f9e6 "feat: add Neon database scaffold and hosting config": builder.config.json, scripts/maybe-migrate.mjs and the committed pnpm-lock.yaml. The job also commits its own lockfile output (pnpm dedupe, the pnpm-lock conflict path) and the skills update scaffold output on top of the merge.

So we still need a merge rather than a plain overwrite of main: an overwrite would drop the lockfile and any of those files the bundled builder-code-starter doesn't ship. I can't see the agent-native repo from here. If #6936 already ships builder.config.json and scripts/maybe-migrate.mjs, the layer comes down to the lockfile and skills, and I can reword the comment to say that. Want me to change it?


Generated by Claude Code

@samijaber samijaber changed the title Drop the starter patch; template is the bundled fusion-starter Drop the starter patch; template is the bundled builder-code-starter Oct 7, 2026
@samijaber
samijaber requested a review from BenGirone October 7, 2026 20:24
@samijaber
samijaber merged commit 390c944 into template Oct 8, 2026
1 check passed
samijaber added a commit that referenced this pull request Oct 8, 2026
* Drop the starter patch; template is the bundled builder-code-starter (#416)

* Drop the starter patch; template is the bundled fusion-starter

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015nA3CjCBcG8kbGZb4hK6DL

* Rename the bundled template to builder-code-starter in the sync comment

---------

Co-authored-by: Claude <noreply@anthropic.com>

* chore: sync template from builder-code-starter@d9ab440d

* Keep the sync workflow on template only

* pnpm i

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: builder-bot <noreply@builder.io>
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.

3 participants