fix(init): create start.prompt.md and fix next steps panel (#603)#649
fix(init): create start.prompt.md and fix next steps panel (#603)#649sergio-sisternes-epam wants to merge 2 commits intomicrosoft:mainfrom
Conversation
There was a problem hiding this comment.
Pull request overview
Fixes the apm init -> apm run start onboarding flow by ensuring a runnable starter prompt exists and updating the printed Next Steps to match the intended workflow.
Changes:
- Create
start.prompt.mdduringapm initfor non-plugin projects (without overwriting existing files). - Update the Next Steps panel to remove the unrelated
apm compilestep and direct users to editstart.prompt.md. - Update and add unit tests, and add a changelog entry for the fix.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
src/apm_cli/commands/init.py |
Creates start.prompt.md, updates Created Files output, and fixes Next Steps messaging. |
tests/unit/test_init_command.py |
Updates existing init tests and adds new coverage for the starter prompt and next-steps output. |
tests/unit/test_init_plugin.py |
Adds coverage ensuring plugin mode does not create start.prompt.md. |
CHANGELOG.md |
Adds an Unreleased “Fixed” entry describing the init onboarding fix. |
…#603) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2cc1d57 to
c668556
Compare
There was a problem hiding this comment.
Thanks for tackling #603 — the bug is real and the current Next Steps panel is genuinely broken (verified locally). Requesting changes because the shape of the fix conflicts with PR #18's design contract, and there's a cleaner reframe that resolves #603 without reintroducing scaffolding.
The conflict with PR #18
PR #18 established that apm init is brownfield-clean / npm-parity: it does NOT scaffold content files into the repo. The contract is "one apm.yml, nothing else." Re-adding start.prompt.md creation — even with brownfield-safety guards — silently reverses that decision and re-opens the scaffolding question we deliberately closed.
The right reframe
The bug isn't "we forgot to create start.prompt.md." It's "the panel teaches a workflow (apm run start) that doesn't match where APM's value lands today." Drop apm run start from the panel entirely; that's the source of the dead-end. Reframe around the install workflow, which is what 5 rounds of multi-PM panel research converged on as the actual high-value first-touch.
Recommended panel (every command verified working in a sandbox against current main):
Next Steps:
* Install a skill: apm install github/awesome-copilot/skills/documentation-writer
* Install a marketplace plugin: apm marketplace add github/awesome-copilot && apm install frontend-web-dev@awesome-copilot
* Install a versioned package: apm install microsoft/apm-sample-package#v1.0.0
* Author your own plugin: apm pack --format plugin
Docs: https://microsoft.github.io/apm | Star: https://github.com/microsoft/apm
Per-line role:
- L1: virtual-path moat (any skill from any GitHub repo, no manifest required) — what no competitor can do
- L2: industry parity (brew-tap / VS Code / Claude marketplace 2-step), chained as one user action so it's a complete demo
- L3: supply-chain story —
#v1.0.0shows version pinning, and this install demonstrates transitive deps live (verified: pullsawesome-copilot/skills/review-and-refactorautomatically). This is whereapm.ymlformat earns its keep - L4: authoring entrypoint — turns consumers into producers
- Footer: community CTA following the bun/uv/deno pattern
Three different verbs (Install / Install / Author) so the eye doesn't glaze on lines that all look the same.
Asks to land this in this PR
- Drop the
start.prompt.mdcreation logic (the write path and brownfield-safety guards). Honor the PR #18 contract. - Replace the Next Steps panel with the v5 shape above.
- Drop
apm run startfrom the panel. It's the source of the dead-end. Theapm runworkflow stays valid in docs; it's not the first-touch surface today. - Keep your test additions — the panel-content tests are still valuable; just update assertions to match the new lines.
- While you're in there, also fix the related doc drift in
docs/src/content/docs/introduction/key-concepts.md:16anddocs/src/content/docs/getting-started/first-package.md— both still reference scaffolded.apm/trees that haven't existed since PR #18.
Happy to pair on the rewrite or take it on directly if you'd prefer. The bug is real, the fix is owed to the user, and your investigation pinpointed exactly what's broken — we just need to land it in a way that honors PR #18.
Summary
Fixes #603 —
apm initshowed a Next Steps panel that directed users through an incorrect workflow. Following the instructions led to a dead end becausestart.prompt.mdwas never created andapm compilewas referenced incorrectly.Changes
1. Create
start.prompt.mdduring initstart.prompt.mdwith frontmatterstart.prompt.mdfiles are never overwritten--plugin) does NOT createstart.prompt.mdencoding="utf-8"for Windows compatibility2. Fix Next Steps panel
Compile agent context: apm compile(unrelated toapm run)Edit your prompt: start.prompt.md3. Updated Created Files table
start.prompt.mdnow appears in the Created Files table when generatedFiles Changed
src/apm_cli/commands/init.py— Createstart.prompt.md, fix next steps, update files tabletests/unit/test_init_command.py— 5 new tests + 4 updated teststests/unit/test_init_plugin.py— 1 new test (plugin mode doesn't create start.prompt.md)CHANGELOG.md— Add fix entryTesting
All 3795 tests pass (39/39 init-specific tests pass).