# `SF014` Project manifest {bdg-ref-primary}`input ` {bdg-ref-primary}`tooling ` The user shall be able to group all input files of a project in a single manifest file, and pass that manifest to the speky CLI instead of listing individual files. A manifest is a YAML or TOML file with `kind: project` containing: - `name`: the project identifier, used as the namespace in reference tags (e.g. `speky:my-project#SF001`) - `files`: a list of glob patterns matching specification files to load - `root_directory`: an optional path relative to the manifest, used as the base for glob patterns and displayed file paths (defaults to the manifest's own directory) - `comments_csvs`: an optional list of glob patterns for CSV comment files When a manifest is loaded, all matched files are loaded in sorted order. :::{dropdown} Tested by :open: :icon: check-circle-fill :color: success [`TF012` Use a project manifest](/tests/TF012) ::: :::{dropdown} References :icon: link :color: secondary __Relates to:__ - [`SF001` Write requirements](/requirements/SF001) - [`SF012` Input file validation](/requirements/SF012) __Referenced by:__ [`SF015` Code sources in manifest](/requirements/SF015) ::: :::{dropdown} Source :icon: file-code :color: info __Source file__: [`specs/functional.yaml`](https://github.com/agagniere/speky/blob/master/specs/functional.yaml) __Loaded from__: [`speky`](https://github.com/agagniere/speky/blob/master/specs/speky.yaml) __Implemented in:__ {fab}`python` [`read_file`](https://github.com/agagniere/speky/blob/master/python/speky/specification.py#L79) ::: ---------- __Comments__ :::{card} Antoine :text-align: left For now, the Typst output uses a .typ file as its equivalent and does not support manifests. :::