fix(skill): say which stack_config entry the runs read and prove it whole - #663
Merged
Merged
Conversation
…hole - backend-configuration Check step 2 names the plain-entry fallback of a configured environment as a degradation; a replay's entry comes from the baseline command's new entry: line, never resolved by hand - Switch: no environment persisted on the local stack, said to the user; a new environment entry asks for the stack's other fields or seeds them from the plain entry - azure-monitor-context.py check proves subscription and resource_group, names every skipped part, and never says connected on identity alone - cloudwatch-context.py check reads a missing profile or region as an incomplete entry (exit 3), the reference now agreeing it is required - preflight.py reports an unreachable Docker daemon and probes the configured stack's CLI - /odd-config offer lists the persisted environments; azure-monitor phrasing and the guides carry the environment forms Closes #657 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Closes #657 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Merged
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
The environment check now says which
stack_configentry the runs read, and proves an entry whole:## Checkstep 2 names the degradation when an environment is configured but the resolved key is the plain<stack>entry (or none, falling back to the CLI's active context), and offerspersist ... in <env>. A replay's pair is read from the newentry:line ofodd_report.py baseline, so/odd-verifyno longer resolves it by hand.## Switch: creating an<env>-<stack>entry says it is whole and asks for the stack's other fields or offers to copy the plain entry's values; on the local stack no environment is written and the user is told so (matching fix(mcp): refuse the environment writes that resolve to a wrong or hidden entry #660's server refusal).azure-monitor-context.py checkproves--subscriptionand--resource-grouptoo, names every skipped targeting part, and no longer saysconnectedon identity alone (exit 3, routed to the switch).cloudwatch-context.py checkreports a missingprofile/regionas an incomplete entry (exit 3) instead of an argparse usage error; the reference states both as required.preflight.pyprobes the configured stack's CLI (from itsbuiltin-stacks.mdrow) and reportsdocker daemon unreachableinstead of "running nothing" whendocker psfails./odd-config's offer lists the persisted environments; azure-monitor gains the environment change-request forms;docs/guide/backends.md,prompts.mdandplugin.mdfollow.Choices amended against the issue text (the widened azure identity-only rule, the degradation as a Check rule rather than a script line, the dropped optional discover read, the cloudwatch alignment) are recorded on the issue: #657 (comment)
Tests
test_preflight.py(daemon unreachable, configured CLI probed or skipped),test_azure_monitor_scripts.py(subscription / resource group proofs, skipped parts named, identity-only not connected; five fixtures captured live and masked),test_cloudwatch_scripts.py(incomplete entry, no aws call),test_odd_report.py(baseline'sentry:line in every case, including a custommonitorin environmentazurenever readingazure-monitor).pytest tests/skills tests/hooks1396 passed after the rebase; ruff 0.16.4 check/format clean;check_stack_reference.pygreen;apm install --target claude+apm auditgreen.Review
A separate reviewer sub-agent checked the whole branch under the bound-review rule: no blocking finding in round 1; the one stale fact it noted (the preflight's "about a third of a second") was dropped in round 2; after the rebase on #660/#661/#662 (one conflict in Switch step 3, the
baselineentry resolution aligned with #660's parse-back rule and checked side by side with the server on seven configurations), no finding, ready to merge.Harness measurement
test-plugin-harnessing, copilot /openai/gpt-5.6-luna/ medium,/odd-observedrive mission on the local llms-benchmark stack, ABBA, both lab branches rebuilt right before the chain; every changed file in the deployed path.Main's spread today over twelve samples: turns 35–46, commands 29–59, tokens in 2.57–3.59 M, wall 310–457 s, preflight 43–78 s. The branch mean is inside or below main's spread on every axis (one branch sample marginally above on turns and preflight, the other below main's minimum on turns, tokens and wall) — no degradation, not claimed as a gain. 1 premium request per sample. The preflight's
Machine:line is identical on both sides on the local stack (the configured-stack CLI probe adds nothing there). Every sample persisted its report on the first try.Closes #657
🤖 Generated with Claude Code