Skip to content

Support JS AppHost package managers#39

Open
spboyer wants to merge 5 commits into
mainfrom
spboyer-support-js-apphost-package-managers
Open

Support JS AppHost package managers#39
spboyer wants to merge 5 commits into
mainfrom
spboyer-support-js-apphost-package-managers

Conversation

@spboyer

@spboyer spboyer commented Jul 22, 2026

Copy link
Copy Markdown
Member

Summary

  • document resolver-aligned TypeScript AppHost package-manager detection and commands
  • preserve aspire start as the lifecycle command and reject Yarn Classic
  • add package-manager behavioral evaluation fixtures and scenarios

Closes microsoft/aspire#16656

Validation

  • waza check skills/aspireify
  • git diff --check
  • targeted waza run started but LLM graders were blocked by Copilot SDK model-service timeouts/retries

spboyer added 2 commits July 22, 2026 12:51
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afc58b38-2c51-4886-b3ab-770a9d4b8914
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: afc58b38-2c51-4886-b3ab-770a9d4b8914
@spboyer
spboyer force-pushed the spboyer-support-js-apphost-package-managers branch from 45ad66c to 10a47b1 Compare July 22, 2026 16:52

Copilot AI left a comment

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.

Pull request overview

This PR adds resolver-aligned guidance and evaluation coverage for TypeScript AppHost package-manager detection, ensuring agents preserve the Aspire lifecycle (aspire start) while selecting the correct package manager (and rejecting Yarn Classic).

Changes:

  • Documented TypeScript AppHost package-manager detection order and supported command patterns.
  • Added aspireify eval tasks covering Yarn Classic rejection, pnpm precedence over parent Yarn metadata, and npm fallback behavior.
  • Added evaluation fixtures representing Yarn Classic and pnpm scenarios, plus updated cross-skill guidance to defer to aspireify package-manager rules.
Show a summary per file
File Description
skills/aspireify/references/typescript-authoring.md Adds documentation for TS AppHost package-manager detection and recommended commands.
skills/aspireify/evals/tasks/typescript-package-manager-yarn-classic.yaml New eval task to ensure Yarn Classic is explicitly rejected.
skills/aspireify/evals/tasks/typescript-package-manager-pnpm.yaml New eval task to ensure pnpm is selected from AppHost-local markers and lifecycle remains aspire start.
skills/aspireify/evals/tasks/typescript-package-manager-fallback.yaml New eval task to ensure npm fallback is explained without metadata changes.
skills/aspire/SKILL.md Reinforces aspire start lifecycle and defers TS package-manager toolchain guidance to aspireify rules.
skills/aspire-init/references/init-workflow.md Updates init workflow guidance to detect/preserve existing package-manager conventions before dependency commands.
evals/ts-apphost-package-managers/yarn-classic/package.json Adds Yarn Classic fixture via packageManager: yarn@1.22.22.
evals/ts-apphost-package-managers/yarn-classic/apphost.ts Adds minimal TS AppHost fixture for Yarn Classic scenario.
evals/ts-apphost-package-managers/pnpm/pnpm-lock.yaml Adds pnpm lockfile fixture to drive pnpm detection.
evals/ts-apphost-package-managers/pnpm/package.json Adds minimal TS AppHost package.json fixture for pnpm scenario.
evals/ts-apphost-package-managers/pnpm/apphost.ts Adds minimal TS AppHost fixture for pnpm scenario.
evals/ts-apphost-package-managers/package.json Adds parent workspace fixture declaring Yarn 4+, for precedence testing.

Review details

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Files not reviewed (1)
  • evals/ts-apphost-package-managers/pnpm/pnpm-lock.yaml: Generated file
  • Files reviewed: 11/12 changed files
  • Comments generated: 3
  • Review effort level: Low

Comment thread skills/aspireify/references/typescript-authoring.md
Comment thread skills/aspireify/references/typescript-authoring.md Outdated
Comment thread skills/aspireify/evals/tasks/typescript-package-manager-yarn-classic.yaml Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 78419ae3-0687-4e50-aa25-e5c5331f83c1

Copilot AI left a comment

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.

Review details

Files not reviewed (1)
  • evals/ts-apphost-package-managers/pnpm/pnpm-lock.yaml: Generated file
Comments suppressed due to low confidence (1)

skills/aspireify/references/typescript-authoring.md:171

  • The table column header "AppHost execution" can be read as the recommended way to run the AppHost, but the preceding sentence says these commands are only for dependency/toolchain diagnostics and do not replace aspire start --non-interactive. Renaming the column to make its diagnostic intent explicit would reduce accidental misuse.
| Manager | Dependency command | Type-check | AppHost execution |
  • Files reviewed: 9/10 changed files
  • Comments generated: 1
  • Review effort level: Low

Comment thread skills/aspireify/references/typescript-authoring.md Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f5542622-4520-4c25-ad93-d4832aaa95aa
Comment thread skills/aspireify/references/typescript-authoring.md Outdated
Comment thread evals/ts-apphost-package-managers/pnpm/apphost.ts Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: f5542622-4520-4c25-ad93-d4832aaa95aa

@IEvangelist IEvangelist left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Approving. The earlier concerns about the TypeScript AppHost scaffold have been addressed in the latest revision: the pnpm and yarn-classic fixtures now use apphost.mts importing createBuilder from ./.aspire/modules/aspire.mjs, and the type-check/diagnostic command table now uses tsconfig.apphost.json with apphost.mts as the entry point.

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.

Update Aspire skill to support JS package manager-specific AppHost launchers

3 participants