module-lookup

Query the digitalmodel module registry to discover modules by capability, standard, or maturity without reading source code.

5 stars

Best use case

module-lookup is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Query the digitalmodel module registry to discover modules by capability, standard, or maturity without reading source code.

Teams using module-lookup should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/module-lookup/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.claude/skills/digitalmodel/module-lookup/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/module-lookup/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How module-lookup Compares

Feature / Agentmodule-lookupStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Query the digitalmodel module registry to discover modules by capability, standard, or maturity without reading source code.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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)

```python
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

```python
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

```python
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

```python
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

```python
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
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** |

Related Skills

module-based-refactor

5
from vamseeachanta/workspace-hub

Reorganize a repository from flat structure to a module-based 5-layer architecture (src/tests/specs/docs/examples) while preserving git history. Use when restructuring a codebase into modules, migrating import paths, cleaning up hidden folders, consolidating duplicate directories, removing root-level artifacts, or archiving completed plan files. Capabilities: parallel agent spawn strategy, hidden-folder consolidation patterns, benchmark fixture separation, 4-phase atomic commit workflow.

discipline-refactor-standard-folders-module-structure

5
from vamseeachanta/workspace-hub

Sub-skill of discipline-refactor: Standard Folders → Module Structure (+1).

oil-and-gas-bsee-module

5
from vamseeachanta/workspace-hub

Sub-skill of oil-and-gas: BSEE Module (+2).

diffraction-analysis-when-to-use-each-module

5
from vamseeachanta/workspace-hub

Sub-skill of diffraction-analysis: When to Use Each Module (+1).

diffraction-analysis-module-locations

5
from vamseeachanta/workspace-hub

Sub-skill of diffraction-analysis: Module Locations.

diffraction-analysis-aqwa-module

5
from vamseeachanta/workspace-hub

Sub-skill of diffraction-analysis: AQWA Module (+2).

bemrosetta-with-diffraction-module

5
from vamseeachanta/workspace-hub

Sub-skill of bemrosetta: With diffraction module (+1).

python-project-template-4-core-module-template

5
from vamseeachanta/workspace-hub

Sub-skill of python-project-template: 4. Core Module Template.

docusaurus-build-fails-with-module-not-found

5
from vamseeachanta/workspace-hub

Sub-skill of docusaurus: Build Fails with Module Not Found (+6).

highcharts-boost-module-large-datasets

5
from vamseeachanta/workspace-hub

Sub-skill of highcharts: Boost Module (Large Datasets) (+2).

memory-management-lookup-flow

5
from vamseeachanta/workspace-hub

Sub-skill of memory-management: Lookup Flow.

memory-management-decoding-user-input-tiered-lookup

5
from vamseeachanta/workspace-hub

Sub-skill of memory-management: Decoding User Input (Tiered Lookup) (+3).