sfdx-project.json fields simply-cicd reads
Beyond the dependencies every install-packaged/install-dependencies command installs (packageDirectories[].dependencies, standard sfdx-project.json), a handful of build * commands read a few extra fields. The package-directory-level ones all belong on the default package directory — the entry with "default": true.
{ "packageDirectories": [ { "path": "force-app", "default": true, "package": "MyPackage", "versionNumber": "1.0.0.NEXT", "definitionFile": "config/project-scratch-def.json", "seedMetadata": { "path": "seed-data" }, "packageMetadataAccess": { "permissionSets": ["My_Permission_Set"], "permissionSetLicenses": ["MyPackage_License"] } } ], "plugins": { "simply": { "coverageRequirement": { "minimumCoverageRequired": "80" } } }}definitionFile— the scratch org definition filebuild create-scratchcreates the org from. Falls back to--scratch-definition-fileif omitted here; required (along withpackage) forbuild create-package-versionto know what to version.packageMetadataAccess.permissionSets/packageMetadataAccess.permissionSetLicenses— assigned to the scratch org’s default user right after creation, bybuild create-scratch. Both are optional and independent — set either, both, or neither.seedMetadata.path— an extra source directorybuild push-scratchdeploys alongside the default package directory. Only pushed when the stage is also given--scratch-org-source-dir; the field by itself doesn’t trigger anything (see Scratch org build lifecycle).plugins.simply.coverageRequirement.minimumCoverageRequired— overridescreate-package-version’s--code-coverage-minimumdefault of75. A string, not a number, matching the rest ofsfdx-project.json’s convention for numeric-looking values nested underplugins.
None of these fields are required to use simply-cicd — every command falls back to a CLI flag or a hardcoded default when they’re absent. They exist so a value that’s really a property of the project (which permission sets a scratch org needs, what coverage bar the package must clear) can live in source control next to the project it describes, instead of being repeated across pipeline YAML.