update-project

Pass

Audited by Gen Agent Trust Hub on Aug 14, 2026

Risk Level: SAFECOMMAND_EXECUTIONEXTERNAL_DOWNLOADS
Full Analysis
  • [COMMAND_EXECUTION]: The skill executes various local system commands and project-specific scripts to manage the update process.\n
  • Uses subprocess.run to invoke Git for repository state inspection (git status, git diff, git ls-remote).\n
  • Executes bd (Beads CLI) for project health checks and hook management.\n
  • Runs project-local scripts scripts/setup-tooling.py and scripts/check-docs.py following template updates.\n- [EXTERNAL_DOWNLOADS]: The skill fetches template data from an external source.\n
  • Downloads project templates from the author's GitHub repository (gh:RobertDeRose/dstack) using the Copier library.\n
  • The implementation explicitly sets unsafe=False when calling copier.run_update and copier.run_copy, which prevents the execution of arbitrary shell tasks defined within the template metadata.\n- [DYNAMIC_EXECUTION]: The skill dynamically loads Python logic from the project environment.\n
  • Uses importlib.util to load layout_contract.py and beads_hooks.py from specific paths within the skill and project structure.\n- [INDIRECT_PROMPT_INJECTION]: The skill processes untrusted project data (e.g., .copier-answers.yml, task files) and remote template content.\n
  • Ingestion points: Reads project configuration files and external template repositories.\n
  • Boundary markers: The workflow requires a manual 'path-accounting ledger' as described in SKILL.md where every change must be classified (accepted, preserved, or resolved) before committing.\n
  • Capability inventory: Includes file system writes, Git operations, and execution of setup scripts.\n
  • Sanitization: Implements strict path validation in layout_contract.py, ensuring paths are relative, normalized, and do not resolve through symlinks.
Audit Metadata
Risk Level
SAFE
Analyzed
Aug 14, 2026, 11:29 AM
Security Audit — agent-trust-hub — update-project