|
14 | 14 | <risk-8>Copying repository-specific framework truth into a bootstrapped project instead of generating project-generic starting surfaces would install the wrong semantic center.</risk-8> |
15 | 15 | <risk-9>Claiming beta usability without VIBE-native operator guidance would push adopters back toward quarantined legacy GRACE playbooks.</risk-9> |
16 | 16 | <risk-10>Leaving bootstrap scaffolds too skeletal would keep the product path documentary instead of making it usable for the first real project loop.</risk-10> |
| 17 | + <risk-11>Requiring a separate long-lived framework checkout as the main adoption path would add friction and weaken the target-repo-first bootstrap model.</risk-11> |
17 | 18 | </ArchitectureNotes> |
18 | 19 |
|
19 | 20 | <Modules> |
|
328 | 329 | <note-4>The git-visible prerelease path and human-readable changelog must stay aligned with the current beta scope.</note-4> |
329 | 330 | </notes> |
330 | 331 | </M-009> |
| 332 | + |
| 333 | + <M-010 NAME="GitBootstrapAcquisition" TYPE="ENTRY_POINT" LAYER="2" ORDER="5" STATUS="done"> |
| 334 | + <contract> |
| 335 | + <purpose>Provide a target-repo-first wrapper that fetches vibestart from git and runs bootstrap against the current or specified repository without requiring a separate long-lived local framework checkout as the main user path.</purpose> |
| 336 | + <inputs> |
| 337 | + <param name="git-source" type="repo-url-or-path" /> |
| 338 | + <param name="bootstrap-entrypoint" type="M-008" /> |
| 339 | + </inputs> |
| 340 | + <outputs> |
| 341 | + <param name="git-bootstrap-wrapper" type="target-repo-first-bootstrap-entry" /> |
| 342 | + </outputs> |
| 343 | + <errors> |
| 344 | + <error code="ERR_GIT_SOURCE_REQUIRED" /> |
| 345 | + <error code="ERR_GIT_FETCH_FAILED" /> |
| 346 | + <error code="ERR_TARGET_REPO_CONTEXT_DRIFT" /> |
| 347 | + </errors> |
| 348 | + </contract> |
| 349 | + <interface> |
| 350 | + <export-gitBootstrap PURPOSE="Expose a target-repo-first bootstrap path that acquires vibestart from git and applies it to the active repository." /> |
| 351 | + </interface> |
| 352 | + <depends>M-008, M-009</depends> |
| 353 | + <target> |
| 354 | + <source>bootstrap-from-git.sh</source> |
| 355 | + <tests>tests/test_bootstrap_from_git.py</tests> |
| 356 | + </target> |
| 357 | + <observability> |
| 358 | + <log-prefix>[VIBE][GitBootstrapAcquisition]</log-prefix> |
| 359 | + <critical-block>BLOCK_FETCH_AND_BOOTSTRAP</critical-block> |
| 360 | + </observability> |
| 361 | + <verification-ref>V-M-010</verification-ref> |
| 362 | + <notes> |
| 363 | + <note-1>The intended adoption UX is target-repo-first: enter the new repository, fetch vibestart from git, and bootstrap in place.</note-1> |
| 364 | + <note-2>The wrapper may remain thin, but it must keep git ref selection, source identity, and target path explicit.</note-2> |
| 365 | + </notes> |
| 366 | + </M-010> |
331 | 367 | </Modules> |
332 | 368 |
|
333 | 369 | <DataFlow> |
|
394 | 430 | <goal>Make the core path usable for one real project through explicit beta scope, operator guidance, and stronger generated starting surfaces.</goal> |
395 | 431 | <step-1 module="M-009" status="done" verification="V-M-009">Define the beta boundary, publish the operator loop, and confirm that the generated scaffolds support the first real project slice.</step-1> |
396 | 432 | </Phase-6> |
| 433 | + |
| 434 | + <Phase-7 name="Git Bootstrap Acquisition" status="done"> |
| 435 | + <goal>Make target-repo-first bootstrap practical by fetching vibestart from git and applying it directly to the active repository.</goal> |
| 436 | + <step-1 module="M-010" status="done" verification="V-M-010">Implement the git acquisition wrapper and verify that a target repository can bootstrap from a git source without a separate long-lived framework checkout.</step-1> |
| 437 | + </Phase-7> |
397 | 438 | </ImplementationOrder> |
398 | 439 |
|
399 | 440 | <ExecutionPolicy> |
400 | 441 | <default-profile>guided-single</default-profile> |
401 | 442 | <experimental-surfaces>auto, multi, calibrate-apply</experimental-surfaces> |
402 | 443 | <experimental-guard>Experimental surfaces are allowed but non-normative until deterministic guards and stronger verification are in place.</experimental-guard> |
403 | | - <controller-owns>README.md, CHANGELOG.md, vibestart, tests/test_vibestart.py, docs/requirements.xml, docs/development-plan.xml, docs/verification-plan.xml, docs/knowledge-graph.xml, docs/decisions.xml, docs/technology.xml, vibe.toml, docs/vibe/*.toml, docs/vibe/beta-readiness.md, docs/vibe/operator-guide.md, docs/vibe/release-path.md</controller-owns> |
| 444 | + <controller-owns>README.md, CHANGELOG.md, bootstrap-from-git.sh, vibestart, tests/test_vibestart.py, tests/test_bootstrap_from_git.py, docs/requirements.xml, docs/development-plan.xml, docs/verification-plan.xml, docs/knowledge-graph.xml, docs/decisions.xml, docs/technology.xml, vibe.toml, docs/vibe/*.toml, docs/vibe/beta-readiness.md, docs/vibe/operator-guide.md, docs/vibe/release-path.md</controller-owns> |
404 | 445 | <worker-owns>Scoped implementation surfaces inside the approved write scope; no worker owns the canonical shared artifacts globally.</worker-owns> |
405 | 446 | </ExecutionPolicy> |
406 | 447 |
|
|
0 commit comments