Skip to content

Security Features

llms.txt lists every page for an agent

Every security feature is off until a workspace turns it on (#4168). The security list in chant.workspace.json names groups, at the top level or on a member, and a member’s list adds to the top-level one. chant workspace check reports what a declared group still lacks, as WSP161 to WSP165 warnings, and says nothing about a group the declaration does not name.

The table is printed from SECURITY_FEATURES in packages/core/src/workspace/security.ts, and a test compares the two. The Default column says what chant does when the workspace turns nothing on. The Turns it on alone column names the flag or setting for that one feature, and the Checked as column names the workspace check codes reported when the group is declared and the feature is still missing.

FeatureDefaultTurns it on aloneGroupChecked as
Publish refuses an unsigned releaseoff: publishes and records signature: unsignedidentity.gates.releaseverified-releasessecurity-signers-missing, security-publish-allows-unsigned
Signed cut in the release gate’s classoffidentity.gates.release with a classverified-releasessecurity-release-gate-missing
Promote verifies the releaseoff: chant release verify on demandchant release verifyverified-releasesnone
SBOM on every targetoff: a target with no SBOM source publishes without onesbom on the targetsupply-chainsecurity-sbom-disabled, security-sbom-unsourced
OIDC provenanceoff: a plan field--require-provenancesupply-chainsecurity-publish-no-provenance
SBOM and verify steps on componentsoffa generate-sbom or verify stepsupply-chainsecurity-component-no-sbom, security-component-no-verify
Signed green tags and runsoff: every tag countsci.green.signedSincewho-ran-itsecurity-signed-since-unset
Trusted runner keysoff.chant/trust.json with a runner rolewho-ran-itsecurity-runner-untrusted
Tick signs its tagsoff: unsigned tags--key or CHANT_RUNNER_KEYwho-ran-itsecurity-tick-no-key
Forge review required, authors never countoff--require-review, requireReview: truereview-rulessecurity-review-not-required
Identified attributionoff: anyidentity.attribution: "identified"review-rulessecurity-attribution-any
Signed approvalsoffidentity.gates.<gate>review-rulessecurity-gate-unsigned
Apply jobs require a runner-start statementoff--require-runner-startisolated-runnerssecurity-runner-start-no-key, security-runner-start-no-role, security-trust-unreadable
Secrets fileoff--secretsnonenone
Env allowlist and log redactionon: ci run’s contract, a listed exception--pass-envnonenone
Plan steps hold no forge tokenon: the plan job’s contract, a listed exceptionregenerate the pipelinenonenone
Separate plan and apply cloud identitiesoff: no job requests an OIDC tokenci.identity.cloudnonenone
GroupCheckHow-to
verified-releasesWSP161Publish only verified releases
supply-chainWSP162Require SBOMs and provenance
who-ran-itWSP163Sign what the runners do
review-rulesWSP164Require forge review for applies
isolated-runnersWSP165Run applies only on started runners

Integrity checks are not on this list, since they are not features to turn on: a release is cut only from a green commit, and publish refuses a revoked release or a checkout other than the release’s commit.

chant