# Auto-generated by: contractile gen-just
# Source directory: contractiles
# Re-generate with: contractile gen-just --dir contractiles
#
# SPDX-License-Identifier: PMPL-1.0-or-later

# === DUST (Recovery & Rollback) ===
# Source: Dustfile.a2ml

# List available dust recovery actions
dust-status:
    @echo '  dust-source-rollback: Revert all source changes to last commit [rollback]'

# Revert all source changes to last commit
dust-source-rollback:
    @echo 'Executing rollback for source-rollback'
    git checkout HEAD -- .


# === INTEND (Declared Future Intent) ===
# Source: Intentfile.a2ml

# Display declared future intents
intend-list:
    @echo '=== Declared Intent ==='
    @echo ''
    @echo 'Features:'
    @echo ''
    @echo 'Quality:'


# === MUST (Physical State Checks) ===
# Source: Mustfile.a2ml

# Run all must checks
must-check: must-license-present must-readme-present must-spdx-headers must-no-banned-files
    @echo 'All must checks passed'

# LICENSE file must exist
must-license-present:
    test -f LICENSE

# README must exist
must-readme-present:
    test -f README.adoc || test -f README.md

# Source files should have SPDX license headers
must-spdx-headers:
    find . -name '*.rs' -o -name '*.res' -o -name '*.gleam' | head -20 | xargs -r grep -L 'SPDX-License-Identifier' | wc -l | grep -q '^0$'

# No Dockerfiles or Makefiles
must-no-banned-files:
    test ! -f Dockerfile && test ! -f Makefile


# === TRUST (Integrity & Provenance Verification) ===
# Source: Trustfile.a2ml

# Run all trust verifications
trust-verify: trust-license-content trust-no-secrets-committed trust-container-images-pinned
    @echo 'All trust verifications passed'

# LICENSE contains expected SPDX identifier
trust-license-content:
    grep -q 'SPDX\|License\|MIT\|Apache\|PMPL\|MPL' LICENSE

# No .env or credential files in repo
trust-no-secrets-committed:
    test ! -f .env && test ! -f credentials.json && test ! -f .env.local

# Containerfile base images use pinned digests
trust-container-images-pinned:
    test ! -f Containerfile || grep -q '@sha256:' Containerfile


