Harden non-interactive Aspire scaffold guidance and init eval graders - #41
Open
David Pine (IEvangelist) wants to merge 1 commit into
Open
Harden non-interactive Aspire scaffold guidance and init eval graders#41David Pine (IEvangelist) wants to merge 1 commit into
David Pine (IEvangelist) wants to merge 1 commit into
Conversation
David Pine (IEvangelist)
requested a review
from Shayne Boyer (spboyer)
as a code owner
July 22, 2026 20:14
Contributor
There was a problem hiding this comment.
Pull request overview
This PR hardens Aspire skill routing evals and CI guidance to avoid hangs caused by interactive/stalled aspire new / aspire init subprocesses, while clarifying the supported non-interactive command forms for automation.
Changes:
- Updates routing and workflow eval stimuli to require explicit
--non-interactive(and--languageforaspire init) and to discourage unsupported flags like--yes. - Expands Aspire init/new documentation with safe non-interactive scaffolding guidance, known upstream hang context, and a Unix stdin workaround.
- Adds workflow step and per-eval timeouts to prevent stalled eval runs from holding CI indefinitely.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| skills/aspireify/evals/eval.yaml | Refines routing stimulus to explicitly reference non-interactive aspire init without running commands. |
| skills/aspire/evals/eval.yaml | Adjusts routing stimulus to explicitly test ownership of non-interactive aspire init. |
| skills/aspire-orchestration/references/app-commands.md | Updates recommended aspire new/init command forms for agent/CI non-interactive execution. |
| skills/aspire-init/SKILL.md | Strengthens non-interactive scaffolding guidance and documents known hang/timeout handling. |
| skills/aspire-init/references/templates.md | Clarifies automation-safe template invocation requirements and expands examples. |
| skills/aspire-init/references/init-workflow.md | Makes the non-interactive aspire init form explicit in documentation. |
| skills/aspire-init/evals/eval.yaml | Updates core-flow and routing eval prompts/graders to enforce supported non-interactive options. |
| .github/workflows/skill-eval.yml | Adds step-level timeout and per-run vally timeout to bound hangs in CI gate evals. |
| .github/workflows/skill-eval-nightly.yml | Adds step-level timeout and per-run vally timeout to bound hangs in nightly evals. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+85
to
+86
| In unattended runs, also enforce a hard process deadline (5 minutes is a reasonable | ||
| default). An execution tool's initial-output wait is not a deadline. |
Main's vally 0.8.0 eval migration (#35) already reworded the hang-prone routing prompts to avoid executing real scaffold commands, so this trims to the pieces that migration did not cover: - Document the still-open `aspire new` install hang (aspire#11595) and the now-fixed Unix stdin block (aspire#16791) in the aspire-init troubleshooting table, and require explicit `--non-interactive` (plus `--language`, `--name`, `--output`, and template-specific flags) across the agent/CI guidance. - Add non-interactive command graders to the aspire-init core-flow evals (init-existing-001, init-new-001, init-py-001), which #35 left untouched. They verify the skill emits `--non-interactive`/`--language`/`--name`/ `--output` and avoids unsupported flags (`--yes`, `--features`, `--skip-install`), and reword those prompts so the trial explains the command instead of running a scaffold that can hang. - Add job-level `timeout-minutes` ceilings to the CI and nightly eval steps so a hung subprocess can't hold a runner indefinitely. Dropped from the original PR as superseded by #35: the routing prompt rewrites (should_trigger_*, should_not_trigger_08, should_trigger_09) and the per-run `--timeout 2m`, which would override the deliberate 600s per-trial budget #35 introduced and reintroduce the hard-fail it avoids. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
David Pine (IEvangelist)
force-pushed
the
ievangelist-dapine-ci-aspire-new-timeout
branch
from
August 24, 2026 15:18
2f82d0b to
86ad5ae
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rebased onto latest
mainand trimmed to the delta that main's vally 0.8.0 eval migration (#35) did not already cover. #35 reworded the hang-prone routing prompts (should_trigger_*) into "How do I…?" questions for the same reason this PR originally targeted — so the executor explains the command instead of running a scaffold that hangs (aspire#11595). This PR now adds only what's still missing:aspire newinstall hang (aspire#11595) and the now-fixed Unix stdin block (aspire#16791) in the aspire-init troubleshooting table, and require explicit--non-interactive(plus--language,--name,--output, and template-specific flags) in the agent/CI guidance (SKILL.md,templates.md,init-workflow.md, orchestrationapp-commands.md).init-existing-001,init-new-001,init-py-001) — which Evals: vally 0.8.0 skills migration + comparative baselines + docs #35 left untouched — asserting the skill emits--non-interactive/--language/--name/--outputand avoids unsupported flags (--yes,--features,--skip-install), and reword those prompts to explain rather than execute.timeout-minutesceilings to the CI and nightly eval steps so a hung subprocess can't hold a runner indefinitely.Dropped from the original PR (superseded by #35)
should_trigger_*,should_not_trigger_08, andshould_trigger_09— main already reworded these.--timeout 2m, which would override the deliberate600sper-trial budget Evals: vally 0.8.0 skills migration + comparative baselines + docs #35 introduced (and reintroduce the hard-fail it avoids).Upstream context
aspire newhangs on package install aspire#11595 — still open (aspire newpackage-install hang)Validation
vally lint skills→ 6/6 passedvally lint --eval-spec skills/aspire-init/evals/eval.yaml→ 0 errors (10 pre-existing warnings, unchanged from main)