Skip to content

Harden non-interactive Aspire scaffold guidance and init eval graders - #41

Open
David Pine (IEvangelist) wants to merge 1 commit into
mainfrom
ievangelist-dapine-ci-aspire-new-timeout
Open

Harden non-interactive Aspire scaffold guidance and init eval graders#41
David Pine (IEvangelist) wants to merge 1 commit into
mainfrom
ievangelist-dapine-ci-aspire-new-timeout

Conversation

@IEvangelist

@IEvangelist David Pine (IEvangelist) commented Jul 22, 2026

Copy link
Copy Markdown
Member

Summary

Rebased onto latest main and 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:

  • Docs: 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) in the agent/CI guidance (SKILL.md, templates.md, init-workflow.md, orchestration app-commands.md).
  • Evals: add non-interactive command graders to the aspire-init core-flow stimuli (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/--output and avoids unsupported flags (--yes, --features, --skip-install), and reword those prompts to explain rather than execute.
  • CI: 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 (superseded by #35)

Upstream context

Validation

  • vally lint skills → 6/6 passed
  • vally lint --eval-spec skills/aspire-init/evals/eval.yaml → 0 errors (10 pre-existing warnings, unchanged from main)

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 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 --language for aspire 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>
@IEvangelist
David Pine (IEvangelist) force-pushed the ievangelist-dapine-ci-aspire-new-timeout branch from 2f82d0b to 86ad5ae Compare August 24, 2026 15:18
@IEvangelist David Pine (IEvangelist) changed the title Prevent Aspire scaffold eval hangs Harden non-interactive Aspire scaffold guidance and init eval graders Aug 24, 2026
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.

2 participants