Manifest reference

[local] — non-shared folders

Folders that should exist in an install but whose contents never ship in the artifact.

[local]
dirs = ["data/portfolios", "outputs", "research"]

Fields

dirs (list of strings)

Folder paths (relative to the workspace root). Each is:

  • Created during rig install if missing, with a .rigkeep placeholder so empty dirs survive.
  • Excluded from the artifact during rig pack, regardless of [package].include patterns.

This is the shape, not content mechanism. The rig says "this folder matters; please create it; don't ship its contents."

When to use it

  • For data folders the agent reads from and writes to (e.g. data/portfolios/).
  • For output folders (outputs/, reports/).
  • For ephemeral folders the user populates themselves.
  • For research/scratch folders.

If the contents should ship (templates, examples, reference data), don't put the folder in [local].dirs. Use [package].include instead.

Precedence

[local].dirs is stronger than [package].include. A folder listed in [local].dirs is never packaged, even if a parent pattern in include would have matched.

This avoids accidents: if you've added data/** to include, but data/portfolios/ is in [local].dirs, the portfolios contents stay out.

Example workflow

[package]
include = [
  "data/templates/**",   # ship templates
  "data/reference/**"    # ship reference data
]

[local]
dirs = [
  "data/portfolios",     # shape only — user populates
  "data/transcripts",    # shape only — user populates
  "outputs"              # shape only — agent writes here
]

After rig hub use && rig install, the user has:

my-rig/
├── data/
│   ├── templates/        # populated from the artifact
│   ├── reference/        # populated from the artifact
│   ├── portfolios/       # empty, with .rigkeep
│   └── transcripts/      # empty, with .rigkeep
└── outputs/              # empty, with .rigkeep

Why .rigkeep

Empty directories don't survive in tar archives or in git. .rigkeep is a zero-byte marker file that preserves the directory. The user can delete it once they put real content in.

See also