SPEC: Skill Dependency Manifest Generator
Contract
- Script:
scripts/dep_manifest.py— scans a skill directory, outputsdependency-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
python scripts/dep_manifest.py /path/to/skillcreates manifest.json- Template renders manifest into readable Dependencies section
- Both work on the skill-creator itself
- Zero existing functionality broken