Skip to content

feat(ai-autopilot): web-app preset seam — framework detection + Vike/Next presets (#115)#130

Merged
suleimansh merged 1 commit into
mainfrom
feat/framework-presets
Jul 2, 2026
Merged

feat(ai-autopilot): web-app preset seam — framework detection + Vike/Next presets (#115)#130
suleimansh merged 1 commit into
mainfrom
feat/framework-presets

Conversation

@suleimansh

Copy link
Copy Markdown
Member

Child of #110. The web-app preset layer.

Builds the mechanism the agreed epic scope calls for (agnostic core + domain presets): framework-specific knowledge lives at the persona layer and is selected by detecting the app's framework, not by forking the runtime.

  • Preset — data: a framework's personas + the signals that identify it. definePreset validates it.
  • detectFramework(presets, signals) — scores a project's dependencies + files (deps weigh more than files), deterministic, returns every score so ties are inspectable.
  • PresetRegistry.select(signals) — picks the detected preset, falling back to the flagship when nothing matches, so a run always has a preset.
  • Built-ins: vikePreset (flagship) and nextPreset, plus a new nextPageBuilder persona (App Router + RSC).
  • presetPersonas(preset) — the framework page builder followed by the shared, framework-neutral personas (sharedPersonas = universal-orm modeler + intent-UI designer). Only the page builder swaps between frameworks; the rest of the stack and the prompts stay put.

This answers the issue's two open questions: detection drives selection via deps/files scoring, and prompts stay framework-neutral (the framework knowledge is in personas), so no Next prompt fork is needed for v1.

Scope note: this is the seam/mechanism, which the epic scope already settled ("agnostic core + domain presets"). The deliberately-open question — whether to hard-limit the market to Next/Vike vs keep it agnostic — is untouched; the registry takes any Preset, so that stays a positioning call, not a code constraint.

Wiring: personaWorkers(presetPersonas(registry.select(signals).preset)) drops straight into supervisorBuild (the bootstrap build step). Left as a call-site so this PR stays self-contained.

Tests: detection (Vike/Next by dep + file, bare-list deps, no-match, overlap/migration tie-break, dep-vs-file weighting), the built-ins + presetPersonas (only the page builder swaps), the registry (select + flagship fallback + explicit fallback + get/all/add), and definePreset validation. Full suite 204 green.

Closes #115.

@suleimansh suleimansh added the enhancement New feature or request label Jul 2, 2026
@suleimansh suleimansh self-assigned this Jul 2, 2026
@suleimansh suleimansh added the priority: medium Worth doing, not urgent label Jul 2, 2026
@suleimansh suleimansh merged commit 57cbba4 into main Jul 2, 2026
2 checks passed
@suleimansh suleimansh deleted the feat/framework-presets branch July 2, 2026 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: medium Worth doing, not urgent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Web-app preset: Next.js + Vike targeting (persona/prompt/loop layer)

1 participant