feat: managing-generators + managing-transforms integration-layer rules#49
Draft
petercrocker wants to merge 31 commits into
Draft
feat: managing-generators + managing-transforms integration-layer rules#49petercrocker wants to merge 31 commits into
petercrocker wants to merge 31 commits into
Conversation
Deploying infrahub-skills with
|
| Latest commit: |
d029ea9
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://c28efd2e.infrahub-skills.pages.dev |
| Branch Preview URL: | https://general-improvements.infrahub-skills.pages.dev |
- rumdl fmt over dev/plans + dev/specs (20 auto-fixes); manual cleanup of a corrupted nested code-fence in the PR 1 plan. - Strengthen has_post_to_artifact_generate with a fallback path: when the URL is stored in a variable (URL-in-Name node) the AST literal check misses; if py_raw contains the path AND any .post() call exists, accept. Catches realistic LLM output like 'endpoint = f"..."; await client.post(endpoint)'. - Rule prose: add a 3-item upfront checklist (POST + loop + CoreArtifact read) since most failing trials produced output that claimed to do the right thing but skipped one of the three.
CI failing trials used infrahub_sdk's private client._post(url=..., payload={},
params={'branch': ...}) helper. The grader was only matching .post — extend
_is_post_like_method to accept any attribute name ending in 'post' (.post,
._post, ._async_post, etc.). Also drop the debug py_raw preview now that
the diagnosis is in.
Rule prose: explicit mention that client._post is an acceptable POST method.
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
Closes integration-layer gaps in the Infrahub skills surfaced by a real-world
demo session that hit 7 bugs across one build. Six of seven bugs (all
Infrahub-related; #6 was Streamlit-specific) are now covered by new rules,
deterministic graders, and eval tasks. Adds a cross-cutting GraphQL dry-run
rule and stronger per-path skill activation in the SessionStart hook.
Bug coverage
DcimDevice.location) missing inline fragments → CoreRepository schema-sync hangmanaging-transforms/queries-union-fragments+infrahub-common/deployment-gql-dry-runmanaging-generators/python-relationship-referencesidmanaging-generators/python-relationship-references+ edit topython-generate.mdRelationshipManager.add()as one peermanaging-generators/python-multi-peer-addIpamPrefixuniqueness collision viaclient.create + .savewithout upsertmanaging-generators/patterns-natural-key-preflight/api/artifact/generatetreated as sync → silent zero-artifact regenmanaging-transforms/artifacts-async-regen-pollingSessionStartadditionalContextWhat landed
managing-generators (PR 1 set, 14 commits)
python-relationship-references,python-multi-peer-add,patterns-natural-key-preflight,testing-integration(advisory).device_type_idexample inpython-generate.mdthat contributed to bug 3.graders/managing-generators/package: AST-based deterministic graders, 4 task graders, 10 check functions.eval.yaml(first evals for this skill), all withtrials: 3.tests/graders/test_generators_lib.py.managing-transforms (PR 2 set, 8 commits)
queries-union-fragments,artifacts-async-regen-polling. Newqueries-prefix registered in_sections.md.graders/managing-transforms/package: GraphQL text + Python AST helpers, 2 task graders, 5 check functions.trials: 3.infrahub-common (PR 3, 2 commits)
deployment-gql-dry-runrecommendinginfrahubctl render --dry-run(or equivalent) for anyqueries/**/*.gqlchange before opening a PR. Documents what YAML-check misses.Hook (PR 4, 1 commit)
SessionStartadditionalContext. Whengenerators/**,transforms/**,queries/**,checks/**,objects/**,menus/**, or.gqlfiles are touched, the hook now explicitly tells Claude to read the corresponding skill + named rule files before editing.Specs and plans
Committed under
dev/specs/anddev/plans/for traceability:dev/specs/2026-05-18-managing-generators-integration-rules-design.md+ plandev/specs/2026-05-19-managing-transforms-integration-rules-design.md+ planTest plan
uvx --with pyyaml --with pytest pytest tests/→ 207 passed (62 new grader unit tests + existing schema/menu/checks tests)uvx rumdl check skills/→ no markdown lint issues across affected skillspython scripts/sync-evals.pyis idempotent —evaluations/*.jsonregenerated and committedskillgrade --smokeagainst the 7 new eval tasks — baseline pass rate to be established (run by reviewer / in CI)