📄 SPEC.md 1,711 bytes Tuesday 01:18 📋 Raw

SPEC: Skill Dependency Manifest Generator

Contract

  • Script: scripts/dep_manifest.py — scans a skill directory, outputs dependency-manifest.json
  • Template: references/dep-template.md.j2 — renders manifest JSON into SKILL.md Dependencies section
  • Output format: JSON with fields: imports, fileRefs, binDeps, skillDeps
  • Each entry: name, sourceRef, status (ok/warn/error), suggestion
  • Output location: Skill root (same level as SKILL.md)

Shared Constants

  • Status enum: ok, warn, error
  • Category fields: imports, fileRefs, binDeps, skillDeps
  • Entry schema: {"name": str, "sourceRef": str, "status": str, "suggestion": str | null}

Backend (Socrates)

Write to: /home/hoffmann_admin/.openclaw/shared/build-20260505/backend/
- Write scripts/dep_manifest.py
- Accepts <skill-dir> argument, output to skill root
- Scans .py files for Python imports, SKILL.md for CLI deps and file refs
- Validates file refs against filesystem
- --tree flag for pretty-print, --stdout for JSON to stdout

Frontend (Daedalus)

Write to: /home/hoffmann_admin/.openclaw/shared/build-20260505/frontend/
- Write references/dep-template.md.j2
- Self-contained Jinja2 template rendering from manifest variable
- Summary table at top: category | total | ✅ pass | ⚠️ warn | ❌ error
- Per-category tables: status | name | sourceRef | suggestion
- Empty categories hidden in detail, still shown in summary

Success Criteria

  1. python scripts/dep_manifest.py /path/to/skill creates manifest.json
  2. Template renders manifest into readable Dependencies section
  3. Both work on the skill-creator itself
  4. Zero existing functionality broken