Detect declared config contract manifests#29
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates repo contract discovery to detect root YAML manifests that declare config contracts via contract/contracts metadata (instead of relying on filename-specific allowlists), and adds regression coverage ensuring config contract detection works with arbitrary filenames like work-conf.yaml.
Changes:
- Add scanning of root-level YAML files for explicit
contract/contractsmarkers and include them as contract manifests. - Add regression tests verifying filename-agnostic config contract detection and context.yaml manifest inventory.
- Update changelog and regenerate
.rabbit/context.yamltimestamp.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
tests/suite.sh |
Adds a new fixture repo (declared-config-repo) and assertions proving config contracts are detected from arbitrary root YAML filenames. |
lib/modules/repo_scaffold.sh |
Adds root YAML scanning for manifests that declare contract/contracts metadata and includes them in the manifest discovery surface. |
changes.md |
Documents the shift from filename allowlists to explicit contract metadata detection for config contracts. |
.rabbit/context.yaml |
Updates generated timestamp to reflect the new context generation. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
76338b2 to
f995e5a
Compare
f995e5a to
8a7870a
Compare
8a7870a to
d849272
Compare
d849272 to
29e6111
Compare
udx-github
approved these changes
Jul 8, 2026
Comment on lines
+312
to
+314
| done <<EOF | ||
| $(find "$repo_root" -maxdepth 1 -type f \( -name '*.yaml' -o -name '*.yml' \) 2>/dev/null | sort) | ||
| EOF |
Comment on lines
8
to
10
| on: | ||
| push: | ||
| workflow_dispatch: |
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
contract/contractsmarkers or typedkind+versionmetadatawork-conf.yamlby combining typed manifest metadata with existingconfig.env/config.secretsshape detectiondeploy.ymlsurface from this repo and from legacy test fixturesenv-interface.yamlas the explicit repo-owned dev.kit environment interface so config coverage comes from a declared contract0.20.0as a milestone release for the manifest/interface shift after0.14.0contract:root manifests, and source/header comments that should not promote ordinary YAML into a contractScope
Changed: repo context contract manifest discovery, manifest-root detection signals, release metadata/docs, generated context, env tool recommendations, docker test entrypoints, and test fixtures.
Not changed: no
worker.yaml, Worker-specific filename, deprecateddeploy.yml, or UDX repo-specific allowlist was added.Validation
bash tests/suite.sh --only repo-contractmake testgit diff --checkworker-phpreportsconfig: presentfromworker.yamlvia generic typed manifest + config shape detection