Load a named skill from its source location for the current run only. Record the resolved version, scope it to the run, and detect stale or conflicting versions before use.Declarative skills
Package reusable task procedures.
reusable_procedure_loadingRECORD STATUSCandidate · v0.1.0UML class view
The proposed contract drawn as participant roles, received calls, and numbered dependencies.
Object interactions
The same roles and calls as a class collaboration and a numbered message sequence.
Pointcut
Where the mechanism applies. All four dimensions belong to the proposed match, not just its vocabulary.
- Context
- A harness can load task procedures from repository or user artifacts.
- Trigger
- A skill is discovered, selected, or invoked.
- Structure
- Manifest or skill file, provenance, resource bundle, loader, and execution boundary.
- Effect
- Instructions and resources become available with visible source and authority.
Protected contract
The obligation that clients, operators, and auditors should be able to rely on.
- Requires
- Skill identity and source location are discoverable.
- Ensures
- Loaded content is scoped to a run and stale or conflicting versions are detectable.
- Invariant
- Skill metadata cannot silently grant permissions or replace protected instructions.
- Violation
- Missing, malformed, stale, or unauthorized skills fail explicitly.
Negative control
A prompt template string without discovery or resource boundaries is not enough.
Variation & lifecycle
The hot spot is admitted only where the protected semantics survive.
Permitted variation
SKILL.md, plugin manifest, remote registry, and namespaced resources.
Test obligation
Test discovery, version collision, malformed manifest, and authority boundary.
Evolution question
Did skill loading add provenance, templates, and execution policy?
Prompt + code design
An illustrative prompt and a small design sketch for the proposed contract. Names and APIs are invented; this is not a repository excerpt.
def load_skill(name, registry, run):
skill = registry.resolve(name)
if skill.version in run.loaded_conflicts(name):
raise SkillConflict(name, skill.version)
run.record_skill(name, skill.version, skill.source)
return skill.instructionsIllustrative design sketch. Discoverability is not enough; scope and version identity are the protected parts. This example is a teaching aid, not implementation evidence or a conformance claim.
Detection & matching
The frozen rule that retrieves this record, the canonical source exemplar, and the control that should stay unmatched.
- Join point
reusable_procedure_loading- Source locator
- See the source record.
- Lexical cue
(?i)\b(?:skills?[_-]?(?:loader|registry|catalog|service)|load[_-]?skills?|SKILL\.md)\bFrozen expression, v0.1.0. A match is a retrieval cue, not a confirmed implementation.- Aliases
- None
- Canonical exemplar
- OpenHands/software-agent-sdk
openhands-sdk/openhands/sdk/skills/skill.py:179Support: tests/sdk/skills/test_skill_md_convention.py:1 - Negative control
- A prompt template string without discovery or resource boundaries is not enough.
Scope-anchored review. pohe-agent analyze <repo> --pattern P15 anchors the cue to its enclosing declaration and checks a separate operational signature for all four pointcut dimensions. Missing roles and negative-control risks remain visible; a structural match is not E2/E3. Calibration report ↗
Repository files
Up to five public files retrieved by the frozen cue and pinned to the audited commit. A match is a place to inspect, not a confirmed implementation.
openhands-sdk/openhands/sdk/skills/skill.py:179CANONICAL SOURCE02aaif-goose/goosecrates/goose/src/acp/server/onboarding.rs:313RETRIEVAL CUE03affaan-m/ECCskills/ck/commands/forget.mjs:10RETRIEVAL CUE04agno-agi/agnolibs/agno/agno/agents/antigravity/agent.py:177RETRIEVAL CUE05anomalyco/opencodepackages/core/src/config/plugin/skill-file.ts:45RETRIEVAL CUEEvidence & provenance
Each layer answers a different question. Do not substitute retrieval for review.
Source-located exemplar
A concrete source anchor is available for this proposed record. It is one exemplar, not evidence that all repositories—or every contract field—conform.
Review boundary: this candidate and its specification come from an AI-assisted study. Independent human validation remains open.
83.3% of repository families in the frozen panel have at least one current cue, historical cue, or canonical source layer. This is not confirmed prevalence.
Current lexical-cue repositories: 33 / 415c524ad65d81openhands-sdk/openhands/sdk/skills/skill.py:179tests/sdk/skills/test_skill_md_convention.py:1Skill manifest and SKILL.md loader.
Exploratory retrieval cue Regex / v0.1.0
(?i)\b(?:skills?[_-]?(?:loader|registry|catalog|service)|load[_-]?skills?|SKILL\.md)\bThis expression is a discovery instrument only. A match is a retrieval cue—not a confirmed implementation, pointcut match, or contract proof.