Skip to main content

Manifests

FilePurposeAuthority
lunapack.ymlDeclares relative local or Git sources and requested root packsProject team
lunapack-lock.ymlRecords resolved graph, provenance, ownership, and digestsCLI
pack.ymlDefines a reusable packPack owner

All documents use version-1 schemas. The former combined-state lunapack.yml shape is unsupported; recreate project state instead of attempting to migrate it. Pack authors should use the pack-manifest reference.

Each requested pack can override project-wide managed-file remapping:

packs:
- id: architecture-guidance
remap:
directories:
docs: docs/architecture
- id: developer-guidance
remap:
directories:
docs: docs/developer

The effective target retained in lunapack-lock.yml has highest priority during updates, including targets selected by an install remapping that was not saved. For new targets, the matching pack entry's remap overrides the top-level remap; command-line install remapping overrides both. luna install --save-remap writes mappings to the installed pack entry.

Use luna pack init and the luna pack add, set, and rm groups to maintain the local pack.yml. These commands validate the complete candidate before an atomic write. Direct YAML edits remain supported; run luna pack validate afterward. Top-level luna validate <pack-reference> instead validates a release selected from configured sources.

Pack manifests can declare credential-free Git sources under local aliases and select managed content from them:

sources:
upstream:
type: git
url: https://github.com/lunarisdigitalsolutions/lunapack.git
ref: refs/heads/main
path: guidance
managedFiles:
- source: upstream
glob: '**/*.md'
exclude:
- '**/README.md'
target: docs/standards

Pack-defined sources require an explicit ref. source plus path, directory, or glob names an alias; legacy file entries containing only source remain pack-relative. External selectors cannot supply lifecycle scripts.

Managed files with template: true can resolve another selected managed file's effective target from its declared target, including consumer remapping. See Use Scriban templates for files.path, files.relative_path, and unavailable-reference fallback behavior.

Git lock provenance is immutable evidence: a record contains its repository URL, configured ref and source path when provided, and the resolved commit SHA. It is generated by LunaPack and is not source configuration for pack manifests. External lock provenance additionally maps each pack alias to the authoritative workspace source and records its fingerprint, canonical ref, resolved commit, source-relative path, effective target, ownership, and digest.