docs(examples): add 25 spec-permutation scenarios as canaries#75
Merged
Conversation
Drafted runnable examples that exercise DevContainer spec permutations
not previously covered by the examples tree. Each new directory follows
the existing convention (devcontainer.json + README.md + executable
exec.sh) and is intended to serve double duty: a demonstration of the
permutation for users, and a canary that surfaces upstream deacon bugs
when run against today's CLI.
New scenarios (25 directories):
up/ (10) initialize-command (paired with
workspace-trust gate), workspace-mount,
user-env-probe-modes, wait-for,
container-user-vs-remote-user,
security-options, override-command,
update-remote-user-uid, ports-config,
image-metadata-merge
features/ (5) override-install-order,
feature-contributed-lifecycle,
feature-env-injection,
option-sanitization, oci-digest-pin
down/ (1) basic
run-user-commands/ (1) basic
set-up/ (1) basic
configuration/ (2) extends-chain-cycle, secrets-declarative
doctor/ (2) gpu-host-requirements,
host-requirements-failure
read-configuration/ (1) named-config-search
template-management/ (1) optional-paths
compose/ (1) multiple-compose-files
Drafting these revealed nine spec-parity gaps in deacon — each filed
with its own reproduction and acceptance criteria. The master tracking
issue is #74; it lists which examples are currently blocked on which
specific deacon issue (#65–#73) and ticks them off as fixes land.
12 of the 25 pass end-to-end against current deacon (with the
--mount-workspace-git-root false workaround for #67); 13 are tracked
canaries. examples/README.md indexes every new dir, links per-example
READMEs back to the specific deacon issue each surfaces, and points at
#74 as the single source of truth for pass/fail status.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This was referenced May 28, 2026
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
examples/to demonstrate DevContainer spec permutations not previously covered, each withdevcontainer.json(+ supporting files) +README.md+ executableexec.sh.--mount-workspace-git-root falseworkaround for #67); 13 are tracked as canaries.New example categories
up/features/down/,run-user-commands/,set-up/configuration/doctor/read-configuration/template-management/compose/examples/README.mdindexes every new dir and points at #74 as the source of truth for pass/fail status.Issues filed as a side effect
All are spec-parity gaps with reproductions in the affected example's README:
--config/--override-configover-validate filenamesread-configurationover-gates on--workspace-folder--workspace-folderreplaced by git root for discovery, not just mountdevcontainer.local_folder/devcontainer.config_filelabels./feature-Xpaths misinterpreted as OCI refs under--configdevcontainer.metadataLABEL not mergedupdateRemoteUserUID: trueignoredsecretsproperty stripped from resolved configpostStart/postAttachnot executed byrun-user-commands/set-upTest plan
cargo fmt --all -- --check(no Rust changes; should pass)cargo clippy --all-targets -- -D warnings(no Rust changes; should pass)examples/up/workspace-mount/exec.sh --mount-workspace-git-root falseagainst built deacon → passes end-to-endexamples/README.md"Status: which examples pass today" section for accuracy🤖 Generated with Claude Code