Agent skill
module-lookup
Query the digitalmodel module registry to discover modules by capability, standard, or maturity without reading source code.
Install this agent skill to your Project
npx add-skill https://github.com/vamseeachanta/workspace-hub/tree/main/.claude/skills/digitalmodel/module-lookup
SKILL.md
digitalmodel Module Lookup Skill
Query the digitalmodel module registry (specs/module-registry.yaml) to discover
which modules can perform a given engineering task, implement a specific standard,
or have a given capability — without reading any source code.
Registry Location
digitalmodel/specs/module-registry.yaml
Invocation Patterns
1. Query by Capability (natural language)
import yaml
from pathlib import Path
REGISTRY = Path("digitalmodel/specs/module-registry.yaml")
def find_by_capability(keyword: str) -> list[dict]:
"""Return all modules whose capabilities mention the keyword."""
data = yaml.safe_load(REGISTRY.read_text())
keyword = keyword.lower()
return [
m for m in data["modules"]
if any(keyword in cap.lower() for cap in m.get("capabilities", []))
or keyword in m.get("description", "").lower()
]
# Examples
find_by_capability("cathodic protection")
find_by_capability("rainflow")
find_by_capability("plate buckling")
find_by_capability("wall thickness")
2. Query by Standard
def find_by_standard(standard_id: str) -> list[dict]:
"""Return modules that reference a standard, with implementation status."""
data = yaml.safe_load(REGISTRY.read_text())
standard_id = standard_id.upper()
results = []
for m in data["modules"]:
for std in m.get("standards", []):
if standard_id in std["id"].upper():
results.append({
"module_id": m["id"],
"path": m["path"],
"status": std["status"],
"maturity": m["maturity"],
"description": m["description"],
})
return results
# Examples
find_by_standard("DNV-ST-F101")
find_by_standard("API-579")
find_by_standard("BS-7910")
find_by_standard("DNVGL-RP-C203")
3. Query by Maturity Level
def find_by_maturity(level: str) -> list[dict]:
"""Return all modules at a given maturity level.
level: 'production' | 'stable' | 'beta' | 'stub'
"""
data = yaml.safe_load(REGISTRY.read_text())
return [m for m in data["modules"] if m.get("maturity") == level]
find_by_maturity("production")
4. Look Up a Module by ID
def get_module(module_id: str) -> dict | None:
"""Retrieve full module record by id (e.g. 'structural/fatigue')."""
data = yaml.safe_load(REGISTRY.read_text())
for m in data["modules"]:
if m["id"] == module_id:
return m
return None
get_module("asset_integrity")
get_module("hydrodynamics/diffraction")
5. List All Modules with Gaps
def modules_with_gaps() -> list[dict]:
"""Return modules that have documented capability gaps."""
data = yaml.safe_load(REGISTRY.read_text())
return [m for m in data["modules"] if m.get("gaps")]
Schema Reference
Each registry entry contains:
| Field | Type | Description |
|---|---|---|
id |
str | Unique slug (e.g. structural/fatigue) |
path |
str | Relative path from repo root |
description |
str | One-paragraph human-readable summary |
maturity |
str | production / stable / beta / stub |
capabilities |
list[str] | Concrete things this module can compute |
standards |
list[{id, clause?, status}] | Standards referenced; status: implemented / partial / gap / unknown |
inputs |
list[{name, type, unit?}] | Optional: key inputs |
outputs |
list[{name, type, description?}] | Optional: key outputs |
gaps |
list[str] | Known limitations or missing features |
test_coverage |
str | high / medium / low / unknown / none |
related_wrk |
list[str] | WRK ticket IDs (e.g. WRK-311) |
Agent Prompt Templates
"Which module handles X?"
Load digitalmodel/specs/module-registry.yaml and search capabilities/description
for "<X>". Return module id, path, maturity, and relevant capabilities.
"Is standard Y implemented?"
Load digitalmodel/specs/module-registry.yaml and search standards[].id for "<Y>".
Return module id, path, implementation status, and any documented gaps.
"I need to calculate Z — where do I start?"
1. Call find_by_capability("<Z keyword>") on the registry.
2. Filter to maturity in [production, stable].
3. Return top 3 results with id, path, capabilities, and inputs/outputs.
CLI Integration
The registry is also queryable via the readiness script:
bash scripts/readiness/query-docs.sh --capability "cathodic protection"
bash scripts/readiness/query-docs.sh --standard "DNV-ST-F101"
Module Count Summary (as of 2026-02-24)
| Category | Count |
|---|---|
| structural | 7 |
| subsea | 6 |
| hydrodynamics | 8 |
| marine_ops | 5 |
| asset_integrity | 1 |
| specialized | 6 |
| data_systems | 5 |
| infrastructure | 8 |
| workflows | 5 |
| signal_processing | 2 |
| production_engineering | 1 |
| solvers | 6 |
| gis | 1 |
| field_development | 1 |
| well | 2 |
| benchmarks | 1 |
| visualization | 1 |
| Total | 70 |
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gsd-complete-milestone
Archive completed milestone and prepare for next version
gsd-reapply-patches
Reapply local modifications after a GSD update
gsd-verify-work
Validate built features through conversational UAT
gsd-thread
Manage persistent context threads for cross-session work
clinical-trial-protocol
Generate clinical trial protocols for medical devices or drugs through a modular, waypoint-based architecture with research-only and full protocol modes.
single-cell-rna-qc
Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations.
Didn't find tool you were looking for?