diff --git a/.agents/skills/contribute-adapter/SKILL.md b/.agents/skills/contribute-adapter/SKILL.md index 1c315c44..67ca28e2 100644 --- a/.agents/skills/contribute-adapter/SKILL.md +++ b/.agents/skills/contribute-adapter/SKILL.md @@ -67,6 +67,17 @@ In addition to the evidence required by the public skill, include: - Wheel inspection when package data, dependencies, or extras change. - Deterministic CI coverage; keep credentialed live-target tests opt-in. +For an adapter that packages or launches a third-party harness, also verify the +repository integration rather than relying on the development workspace: + +- Install the packed artifact using the documented consumer command and verify + its required runtime and peer dependencies in that isolated environment. +- When `doctor` checks an executable requirement, test its resolution on every + supported platform. Match the exact command-launch semantics rather than + assuming a platform's shell or extension-search behavior. +- Do not commit generated reference changes caused solely by a local + tool-version difference. + ## Validation Use `validate-change` to select the complete matrix. The common adapter checks diff --git a/skills/nemo-fabric-build-adapter/SKILL.md b/skills/nemo-fabric-build-adapter/SKILL.md index ae8e2e97..2b78e4bc 100644 --- a/skills/nemo-fabric-build-adapter/SKILL.md +++ b/skills/nemo-fabric-build-adapter/SKILL.md @@ -106,6 +106,24 @@ Python package's single model namespace. TypeScript types do not validate data received from a process or network boundary; validate untrusted values against the JSON Schemas included with the package. +## Integrate an Upstream Harness Deliberately + +When an adapter wraps a third-party SDK, executable, service, or embedded +runtime, establish the supported integration boundary before relying on it: + +- Identify the exact upstream release, required runtime, and documented + installation path. Verify that path in an isolated consumer environment; + do not infer it from a development workspace's dependency layout. +- Check whether required upstream packages and executables can be resolved + before loading them. Report a missing requirement differently from a + dependency that was found but failed during import or initialization. +- Decide whether the harness may discover project files, user-home + configuration, plugins, instructions, or credentials. If Fabric does not + declare that surface, disable discovery when the harness supports it rather + than depending on ambient host behavior. +- If the adapter accepts a URL for an authenticated upstream endpoint, define + and test its transport and trust boundary. + ## Map AgentConfig Accept a validated `AgentConfig` and translate each declared field once at the @@ -289,5 +307,16 @@ Complete these checks before handing off an adapter: 8. Report the adapter package version, contract version, required-profile result, and every optional capability as supported or unsupported. +When applicable, add focused evidence for the decisions above: + +- Run a real-harness regression with temporary project and user-home inputs + when configuration discovery could affect a Fabric runtime. +- For a stateful harness, make a later result observably depend on an earlier + invocation; a test that merely invokes twice does not prove continuity. +- Test a configured external endpoint against a local deterministic server when + its security or forwarding behavior is adapter-owned. +- When a live-provider check is intended to be provider-agnostic, do not + hard-code a vendor or model. + Do not claim automated NeMo Fabric conformance until the published conformance suite exists and the exact adapter release passes it.