Skip to content

fix(onboarding): vendor engine on /edpa:setup + refresh V2 install next-steps#51

Merged
jurby merged 1 commit into
mainfrom
fix/fresh-install-onboarding
May 31, 2026
Merged

fix(onboarding): vendor engine on /edpa:setup + refresh V2 install next-steps#51
jurby merged 1 commit into
mainfrom
fix/fresh-install-onboarding

Conversation

@jurby
Copy link
Copy Markdown
Contributor

@jurby jurby commented May 31, 2026

Summary

Three fresh-install onboarding friction points (EDPA 2.1.7), all on the path a Claude-Code-only user hits — install the plugin, run /edpa:setup on a bare repo. Found via a new deterministic E2E harness (tests/onboarding/).

1. /edpa:setup never vendored the engine 🐛 (silent, runtime)

project_setup.py now vendors scripts+schemas+templates+rules+VERSION into .edpa/engine/ as step 1 of main() (mirrors install.sh).

Why it regressed: the CC path lost vendoring in 7223b40 ("stop vendoring … into .claude/"); 12 min later c8978f4 made a vendored .edpa/engine/ required but wired it only into install.sh. Net: /edpa:setup produced a project referencing a .edpa/engine/scripts/ that never existed — the --with-ci workflow it installs + the documented CLI broke, masked by the MCP server running from the plugin cache, so it surfaced only at CI/CLI time.

Also fixed: rules were vendored from the wrong path (plugin/edpa/rules) → corrected to plugin/rules (one level above edpa/), else --with-rules still failed with "Rules source dir missing".

2. install.sh "Next steps" was stale V1

Removed "provision GitHub Project … push to GitHub Projects" and the broken V1 args --org/--repo/--project-title (would error); now prints the V2 local-first flow with correct --with-ci --with-hooks --with-rules + filelock in the dep hint.

3. Fresh edpa.yaml shipped a frozen methodology version

Both install.sh and project_setup.py now stamp governance.methodology to the live plugin version after seeding (was left at the template's EDPA 1.22.1 on a first cp).

Test plan

  • New tests/onboarding/ harness (pexpect + tmux) reproduces all onboarding paths deterministically — 5/5 green after the fix (Path B was failing before).
  • tests/test_project_setup_vendor.py (incl. --with-rules end-to-end + methodology stamp), tests/test_install_sh_hygiene.py.
  • Full suite: 564 passed.

Not a release — version bump / CHANGELOG / web deploy per the release checklist are a separate step.

🤖 Generated with Claude Code

…xt-steps

Fixes three fresh-install friction points found via a new E2E onboarding
harness (tests/onboarding/), all on the path a Claude-Code-only user hits
when they install the plugin and run /edpa:setup on a bare repo.

1. /edpa:setup never vendored the engine. project_setup.py now vendors
   scripts+schemas+templates+rules+VERSION into .edpa/engine/ as step 1 of
   main() (mirrors install.sh; rules come from plugin/rules, one level above
   edpa/, not edpa/rules). The CC path lost vendoring in 7223b40 ("stop
   vendoring into .claude/"); c8978f4 made a vendored .edpa/engine/ required
   12 min later but wired it only into install.sh. Result: /edpa:setup
   produced a project referencing a .edpa/engine/scripts/ that never existed
   — CI (the --with-ci workflow) + documented CLI broke silently, masked by
   the MCP server running from the plugin cache.

2. install.sh "Next steps" printed stale V1 guidance ("provision GitHub
   Project ... push to GitHub Projects") and invoked project_setup.py with V1
   args (--org/--repo/--project-title) that no longer exist and would error.
   Rewritten to V2 local-first, correct --with-ci/--with-hooks/--with-rules,
   plus filelock in the dependency hint.

3. Fresh edpa.yaml shipped the template's frozen methodology version. Both
   install.sh and project_setup.py now stamp governance.methodology to the
   live plugin version after seeding.

Guards: tests/onboarding/ harness (pexpect + tmux, reproduces all paths
deterministically), tests/test_project_setup_vendor.py (incl. --with-rules
end-to-end), tests/test_install_sh_hygiene.py. Full suite: 564 passed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jurby jurby merged commit 89ca44a into main May 31, 2026
1 check failed
@jurby jurby deleted the fix/fresh-install-onboarding branch May 31, 2026 20:22
jurby added a commit that referenced this pull request May 31, 2026
Engine now vendors on the /edpa:setup path (project_setup.py), V2 local-first
install.sh "Next steps", and freshly seeded edpa.yaml methodology stamped to
the live plugin version. See CHANGELOG.md and PR #51.

Co-Authored-By: Claude Opus 4.8 (1M context) <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