check-quarto-manuscript.yml
Bundles the standard check suite for Quarto manuscript and academic paper repositories (such as Morrison-Lab/qmt). Replaces individual workflow files with a single composite action or reusable workflow call.
What it runs
Runs the full Morrison-Lab repository hygiene pass plus manuscript-specific checks:
check-junk-files.yml: OS and editor detritus (.DS_Store,Thumbs.db,.Rhistory, etc.)check-secrets.yml: Gitleaks scan of git history for committed credentials and tokenscheck-non-standard-chars.yml: flags non-standard unicode characters, curly quotes, and smart dashescheck-new-line-breaks.yml: enforces semantic line breaks on modified lines in diffscheck-typos.yml: crate-ci/typos CLI scan for spelling errors on modified filescheck-ai-tells.yml: scans narrative prose (*.md,*.qmd) for AI cliches and tellslint-yaml.yml: yamllint over tracked YAML fileslint-workflows.yml: actionlint and zizmor over GitHub Actions workflowslint-markdown.yml: markdownlint-cli2 over tracked Markdown fileslint-qmd.yml: markdownlint over prose sections of tracked.qmdfilescheck-links.yml: lychee link checker across manuscript sections, references, and external linkscheck-quarto-links.yml: relative links from.qmd/.md/.Rmdsources to pages that do not exist, which Quarto only warns about and lychee does not read out of a.qmdcheck-orphaned-images.yml: tracked images that no source file references (warn-only by default)check-typed-output.yml: typed or faked code output in Quarto sources (warn-only by default)check-informal-definitions.yml: flags technical concepts defined in running prose rather than formal Quarto definition divs (::: {#def-...}) (warn-only by default)check-bibliography-dois.yml: validates BibTeX bibliography entries in.bibfilescheck-equation-renders.yml: crawls rendered HTML manuscript pages to ensure MathJax typesets all equations without errors (active whenequation-renders-site-diris specified)
Every check is enabled by default. Opt out of any specific check by passing its boolean flag as false.
Inputs
| Input | Type | Default | Description |
|---|---|---|---|
fail |
boolean | true |
Fail the job on findings (else warn only). |
check-junk-files |
boolean | true |
Enable junk files check. |
junk-patterns |
string | see check-junk-files.qmd |
Gitignore patterns naming junk files. |
junk-paths-ignore |
string | '' |
Paths to exempt from junk files scan. |
check-secrets |
boolean | true |
Enable gitleaks secrets scan. |
secrets-config |
string | '' |
Custom gitleaks config file path. |
secrets-paths-ignore |
string | '' |
Regex paths to exempt from secrets scan. |
check-non-standard-chars |
boolean | true |
Enable non-standard character check. |
non-standard-chars-extensions |
string | '.qmd, .md' |
File extensions to check for non-standard characters. |
check-new-line-breaks |
boolean | true |
Enable semantic line break check. |
new-line-breaks-base-ref |
string | '' |
Base ref for diff-scoping new line breaks. |
new-line-breaks-globs |
string | '' |
Globs to check for new line breaks. |
check-typos |
boolean | true |
Enable typos check. |
typos-config |
string | '' |
Typos configuration file path. |
typos-base-ref |
string | '' |
Base ref for diff-scoping typo checks. |
check-ai-tells |
boolean | true |
Enable AI tells check on prose. |
ai-tells-threshold |
string | '10' |
Maximum allowed tell density (per 1,000 words). |
ai-tells-ignore |
string | '' |
Comma- or space-separated list of tells to ignore. |
lint-yaml |
boolean | true |
Enable YAML linting. |
yaml-config-file |
string | '' |
Custom yamllint config file path. |
yaml-paths-ignore |
string | '' |
Patterns to exclude from YAML linting. |
lint-workflows |
boolean | true |
Enable workflow linting. |
workflows-path |
string | '.' |
Path to workflow files. |
lint-markdown |
boolean | true |
Enable Markdown linting. |
markdown-config-file |
string | '' |
Markdownlint config file path. |
markdown-globs |
string | '*.md' |
Git pathspecs of Markdown files to lint. |
markdown-paths-ignore |
string | '' |
Paths to exempt from Markdown linting. |
markdown-base-ref |
string | '' |
Base ref for list-item splice checks. |
lint-qmd |
boolean | true |
Enable QMD prose linting. |
qmd-config-file |
string | '' |
Markdownlint config file for QMD files. |
qmd-globs |
string | '*.qmd' |
Pathspecs of QMD files to lint. |
qmd-paths-ignore |
string | '' |
Patterns to skip for QMD linting. |
check-links |
boolean | true |
Enable lychee link checker. |
lychee-config |
string | '' |
Path to a custom lychee config file. |
lychee-args |
string | '--exclude-mail' |
Command-line arguments for lychee. Do not pass --format or --output. |
check-quarto-links |
boolean | true |
Enable the check for links to missing Quarto pages; blocking or not follows fail. |
quarto-links-paths-ignore |
string | '' |
Globs of source files to skip for the Quarto links check. |
check-orphaned-images |
boolean | true |
Enable the orphaned-images report. |
orphaned-images-paths-ignore |
string | '' |
Globs of images to skip. |
orphaned-images-base-ref |
string | '' |
Base ref so only images added since it are reported; empty examines every image. |
orphaned-images-fail |
boolean | false |
Fail on an orphaned image; the report warns only by default, whatever fail says. |
check-typed-output |
boolean | true |
Enable the check for typed or faked code output. |
typed-output-globs |
string | '*.qmd' |
Space-separated git pathspecs of tracked files to check. |
typed-output-paths-ignore |
string | '' |
Patterns to skip for typed output check. |
typed-output-diff-scoped |
boolean | false |
Report only findings on lines added since typed-output-base-ref. |
typed-output-base-ref |
string | '' |
Base ref for diff-scoped typed output check. |
typed-output-fail |
boolean | false |
Fail on typed code output; the check warns only by default, whatever fail says. |
check-informal-definitions |
boolean | true |
Enable check for informal definitions in prose. |
informal-definitions-globs |
string | '*.qmd' |
Space-separated git pathspecs of tracked files to check. |
informal-definitions-paths-ignore |
string | '' |
Patterns to skip for informal definitions check. |
informal-definitions-diff-scoped |
boolean | false |
Report only findings on lines added since informal-definitions-base-ref. |
informal-definitions-base-ref |
string | '' |
Base ref for diff-scoped informal definitions check. |
informal-definitions-fail |
boolean | false |
Fail on informal definitions; the check warns only by default, whatever fail says. |
check-bibliography-dois |
boolean | true |
Enable bibliography DOI validation. |
bib-exclude-keys |
string | '' |
BibTeX keys to skip for DOI validation. |
check-equation-renders |
boolean | true |
Enable equation render validation. |
equation-renders-site-dir |
string | '' |
Directory of built HTML pages to crawl. |
Example
name: Check Quarto manuscript
on:
push:
branches: [main]
pull_request:
jobs:
check:
permissions:
contents: read
uses: Morrison-Lab/gha/.github/workflows/check-quarto-manuscript.yml@v3