fix: two skills taught resources the platform does not have - #80
Merged
Conversation
fab's skills are the regeneration source — they are read into the preamble of every factory session and shape every artifact an agent produces. A skill that names something nonexistent does not just mislead a reader; it re-emits the defect into the next generated tenant. Two instances, both live: `eks-agent-platform-curation.md` listed BatchJob in the agents.nanohype.dev API group and defined it as "a Bedrock batch inference run over an S3 prefix". No control plane serves that kind. An agent curating against this skill would author a CR the API server rejects. `kubernetes-engineering.md` taught a NetworkPolicy whose ingress admits the `observability` namespace. Nothing creates that namespace — the observability addons land in `monitoring`, which is also what the Kyverno exclusion lists and the operator both name. A policy generated from this example admits traffic from a namespace that does not exist, so the rule matches nothing and the ingress it was meant to permit is silently dropped. The second is the same defect already fixed at four other sites; this file is where those four were generated from, so leaving it would have restored them. ─── Not fixed here ─── There is no gate over fab/skills, and these are the second and third instances found in one campaign. The obstacle is real rather than an oversight: fab vendors two nanohype standards (language-toolchain, llm-policy) and neither enumerates the platform's CRD kinds, so a check would need a new vendoring channel for the kind list rather than a regex. Filed with that scope rather than approximated with a weaker check that would pass on the next instance.
stxkxs
force-pushed
the
fix/skills-name-deleted-resources
branch
from
August 5, 2026 20:47
e246e71 to
4f18d38
Compare
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.
fab's skills are the regeneration source — read into the preamble of every factory session, shaping every artifact an agent produces. A skill naming something nonexistent doesn't just mislead a reader; it re-emits the defect into the next generated tenant.
Two instances, both live.
eks-agent-platform-curation.md— a deleted CRD, taught as currentListed
BatchJobin theagents.nanohype.devgroup and defined it as "a Bedrock batch inference run over an S3 prefix". No control plane serves that kind. An agent curating against this skill authors a CR the API server rejects.kubernetes-engineering.md— a namespace nothing createsTaught a NetworkPolicy whose ingress admits the
observabilitynamespace. The observability addons land inmonitoring— which is what the Kyverno exclusion lists and the operator both name. Verified: no ApplicationSet places anything inobservability.A policy generated from this example admits traffic from a namespace that does not exist, so the rule matches nothing and the ingress it was meant to permit is silently dropped. Renders clean, lints clean, passes every policy gate.
This is the same defect already fixed at four other sites — and this file is where those four were generated from, so leaving it would have restored them on the next generation.
What is deliberately not fixed here
There is no gate over
fab/skills, and these are the second and third instances found in one campaign. The obstacle is real rather than an oversight:fab vendors two nanohype standards (
language-toolchain,llm-policy) and neither enumerates the platform's CRD kinds.platform-tenant-contract.jsonhas no machine-readable kind list either. So a check needs a new vendoring channel for the kind list, not a regex.Filed with that scope rather than approximated with a weaker check that would pass on the next instance.
npm run lintclean; 502 tests across 33 files pass.