Code: folio-assistant-core
folio-assistant-core · 6 declared code directories · Files open on GitHub at the commit this site was built from.
pipeline/ core-pipeline
`pipeline/qa-checkers-recommendation.ts`, the automated checker `qa-checkers/recommendation-strength-resolves.json` names (`RECOMMENDATION_CHECKERS`), and `pipeline/plugin-slots.ts`, the table `pipeline-plugins/tabular-csvw.json` names (`PIPELINE_IMPLEMENTATIONS`, bean `urat`). Under `pipeline/` because that is where the harness's `imports` input-site looks for a contributed checker, as the science layer's cost checkers and the DAK layer's checkers are; it was `content/pipeline/` until every layer's pipeline moved to `pipeline/` (owner, 2026-10-14).
4 files
adapters/ core-adapters
The content layer's own ContentAdapters. `document/` arrived 2026-09-30 as step 2 of the adapters closure (bean `ybp4`, planned in `r0tm`, ruled by the owner as option A: two PRs, paper first). It took the `cat-harness ->` sibling-import count from 2 to 0 — the last two escapes were `intake-records.ts` and its test, both importing `schemas/dublin-core.js` UP out of the harness, and both are now intra-instance. The remedy is `yj6r`'s throughout: the CONSUMER moves up and the schema stays; no schema moved down into `cat-harness/schemas/`, which that bean forbids as buying a green gate by relocating the boundary the gate protects. The directory's own imports into `cat-harness-tools/src/`, `cat-harness/schemas/` and `cat-harness-tools/pipeline/` are DOWNWARD and therefore legal — core declares `needs: ["cat-harness"]`. Its six consuming tests moved with it into `scripts/tests/`, because a test does not leave its subject to make a count fall. Three things shipped in the same commit because each fails SILENTLY rather than loudly: this declaration, `tsconfig.json`'s `include` entry (without it `bun run typecheck` goes green while covering twelve fewer files, and no gate reports a shrinking program), and the `BUILTIN_ADAPTERS` module path — which is resolved by VARIABLE specifier, so no static-import gate would have caught it. `paper/` is not here: it is the science layer's and lives in that layer's own `adapters/paper/` since bean `y5si`, step 1 of the same closure.
15 files
README.mddocument/content.tsdocument/declared-adapter.test.tsdocument/index.tsdocument/intake-records.test.tsdocument/intake-records.tsdocument/paths.tsdocument/resolver.tsdocument/tools/_pipeline.tsdocument/tools/audit.tsdocument/tools/bib.tsdocument/tools/qa.tsdocument/tools/render.tsdocument/tools/transform.tsdocument/tools/validate.ts
src/ core-src
Core's own server half: the HTTP routes that act on a folio's CONTENT — `routes/feedback.ts` (its feedback items), `routes/glossary.ts` (its glossary candidates), `routes/relevance.ts` (its bibliography relevance). Moved up from `cat-harness-tools/src/routes/` when the server moved to `cat-harness-tools` (bean `70lx`, B1; owner, 2026-10-04: a content package's server half lives with its content). The server declares them by their `src/routes/*` path and finds them here through `needs`, since core needs `cat-harness-tools`; they import the server's contract (`route-groups`, `types`, `core/rbac`) DOWN from it.
5 files
scripts/ core-scripts
Core's own executable surface, with every test beside its subject: the review-comment Tool and its move helper, the glossary extractors, the sample-import pair, and — since bean `yj6r`, 2026-09-30 — two tranches of escapes that moved UP out of `cat-harness/`. The materialisation trio (`check-materialized-fixity`, `backfill-materialized-fixity`, `cache-index`) and the FHIR IG artefact-index pair (`ingest-ig-artifacts`, `check-artifact-index`) came first, to sit beside the `schemas/materialization.ts` and `schemas/fhir-artifact-index.ts` they read. The glossary CLUSTER followed — `build-glossary.ts`, its `:refterm` codemod `codemod-refterm.ts`, and all three of their tests — because walking a paper's blocks to collect `defines[]` and emit a `folio-glossary/v1` scheme is CONTENT machinery, and the harness (`needs: ["bootstrap"]`) was importing upward into this instance's `schemas/glossary.ts` and `scripts/glossary-page.ts` — an import against its own declaration, and a circular dependency between repositories after the split. The partition rules already classified `content/pipeline/` as core, so the classification did not change; the DIRECTORY caught up with it. They are still addressed as pipeline scripts by id, and `resolvePipelineScript` searches the folio, then the platform, then here. The LAST FOUR clusters followed on the same day and in the same tranche, taking the `cat-harness ->` sibling-import count from 5 to 2: `extract-assets.ts` (a container a folio was given → a `folio-extraction/v1` record, reading `schemas/extraction.ts` — both moved DOWN again on 2026-10-02 by owner ruling 2 of the placement proposal, bean `tlat`: the script to `cat-harness-tools/scripts/`, the schema to `cat-harness/schemas/`, as the tool behind the harness's own `asset-extraction` skill), `check-voices.ts` (every voice rule's citation resolved through `schemas/library-ref.ts` into a folio's `library/`), and `build-document-site.ts` WITH its test, which reads `schemas/changeset.ts`. The last is the one with an invocation surface: a DOCUMENT folio's generated staging workflow names it by path, so `init-folio.ts` now writes `folio-assistant-core/scripts/build-document-site.ts` and `init-folio.test.ts` pins that string — the same instance-relative property this entry records for `review-comments.ts`, arrived at from the other direction. The partition rules had already classified all four `core` by exact entry, so again only the DIRECTORY moved; each dead entry was removed with its reasoning kept in place, because a rule naming a path its own scan can no longer see fires on nothing while reading as an adjudication. The adapters closure followed on the same day: `adapters/document/` and its SIX consuming tests are now here and in `adapters/`, taking the count 2 -> 0 (bean `ybp4`). This sentence previously read "What did NOT move, and deliberately" of those two files, and recorded that the closure "needs its own ruling" — it got one, and `r0tm`'s re-derivation also corrected the deterrent measurement: the 15 created escapes were 16, and paper-first is FREE, which is what turned an all-or-nothing three-instance move into two ordinary steps. This sentence listed only the review-comment pair until then, by which point four other tools were already here — a directory description that names its founding file rather than its contents goes stale the first time anything lands. Core declared its `schemas/`, its `folios/`, its `voices/` and its `tools/` and left `scripts/` undeclared, which is the `ylj7` shape: the directories that hold what is DESCRIBED were declared and the one holding what RUNS was not. Declared where it is: `review-comments.ts` is invoked by path from `folio-staging.yml`, so relocating it is an invocation surface `check:workflow-paths` would have to re-guard for nothing the declaration does not already buy.
121 files
README.mdbackfill-materialized-fixity.tsbibliography-page.test.tsbibliography-page.tsblock-actions.test.tsblock-actions.tsbuild-document-site.test.tsbuild-document-site.tsbuild-folio-site.test.tsbuild-folio-site.tsbuild-glossary-skos.test.tsbuild-glossary-usage.test.tsbuild-glossary.tsbuild-library-site.test.tsbuild-library-site.tscache-index.test.tscache-index.tscheck-catalogue.tscheck-materialized-fixity.tscheck-voices.tscodemod-refterm-usage.test.tscodemod-refterm.test.tscodemod-refterm.tsdc-render.tsdocument-layout.test.tsdocument-rendered-impact.test.tsdocument-rendered-impact.tsdocument-site-route.tsdocx-structure.pydocx-structure.test.tsdocx-to-folio.test.tsdocx-to-folio.tsfetch-dspace-item.test.tsfetch-dspace-item.tsfetch-who-publication.test.tsfetch-who-publication.tsfolio-site-assets/folio-site.cssfolio-site-assets/folio-site.jsfolio-site-assets/qa-panel.jsfolio-site-blocks.test.tsfolio-site-blocks.tsfolio-site-chrome-check.tsfolio-site-qa.tsgen-covers.test.tsgen-covers.tsglossary-extract.tsglossary-mapping-block.test.tsglossary-one-concept.test.tsglossary-page.tsglossary-pot.test.tsglossary-pot.tsglossary-skos-automated.test.tsintake-rows.pykg-materialize.test.tskg-materialize.tsl1-coverage.test.tsl1-coverage.tslanding-links.test.tslib/bytes.tslib/local-path.tslocal-path.test.tslsi-blocks.test.tslsi-blocks.tsmaterialized-fixity.test.tspdf-line-map.pyplatform.tspublic-comment-changesets.tspublic-comment-pages.test.tspublic-comment-pages.tspublic-comment-route.tspublic-comment-routing.test.tspublic-comment-routing.tspublic-comment-site.test.tspublic-comment-site.tspublic-comment.test.tspublic-comment.tsreview-comment-move.test.tsreview-comment-move.tsreview-comments.test.tsreview-comments.tsreview-coverage.test.tsreview-coverage.tssample-import-check.tssample-import-run.test.tssample-import-run.tsscope-css.tssite-reads.test.tssource-liveness.test.tssource-liveness.tsstage-folio-local.tstabular-columns.tstabular-csv.test.tstabular-csv.tstabular-dak.tstabular-xlsx.test.tstabular-xlsx.tstest-fixtures/library-structure.jsontest-fixtures/scale-pair.changeset.jsontest-fixtures/scale-pair.tstests/adjudication-marker.test.tstests/audit-tools.test.tstests/bean-link.test.tstests/chat-prompt-injection.test.tstests/check-voices-vendors.test.tstests/content-change-review.test.tstests/corpus-commit-contract.test.tstests/corpus-gate.test.tstests/decision-table.test.tstests/document-content-boundary.test.tstests/getting-started.test.tstests/l1-ingestion-subprocess.test.tstests/log-writer.test.tstests/materialization-last-read.test.tstests/pipeline-resolution.test.tstests/qa-tools.test.tstests/registry-authority-contract.test.tstests/review-coverage-gate.test.tstests/transform-bib-tools.test.tstests/validate-pipeline-guard.test.tstests/workflow-gate.test.tstests/workflow-interpreter.test.ts
templates/ core-templates
Files this layer's tools WRITE INTO a folio that opts in, kept as real files rather than strings inside a script. `public-comment/github/` holds the issue forms and the two workflows that `scripts/public-comment-changesets.ts install` copies into a folio's `.github/` (`TEMPLATE_DIR`). They moved up here from the tools layer's `templates/public-comment/` (move M10, folio-assistant#2598), because this layer is the only one that installs them.
6 files
test/ cat-harness-tools-tests
Tests of the code this layer holds, moved with their subjects so the harness keeps no test importing upward into this layer: `composition-roots` (the declared tool groups and route mounting) and `mcp-graph-tools`.
200 files
attestations/block-qa/docs/source/guides-writing-a-document/1-scaffold-the-folio.attestations.jsonattestations/block-qa/docs/source/process-publication-workflow/every-workflow-in-the-repo.attestations.jsonattestations/block-qa/docs/source/process-publication-workflow/how-to-read-them.attestations.jsonattestations/block-qa/docs/source/process-publication-workflow/the-work-plan-tasks-as-beans.attestations.jsonhealth/results/repository.health-report.jsonresults/block-qa/docs/source/concepts-content-lifecycle/the-content-lifecycle-lead.qa.jsonresults/block-qa/docs/source/concepts-content-lifecycle/the-content-lifecycle.qa.jsonresults/block-qa/docs/source/concepts-document-content-type/carrying-a-normative-statement.qa.jsonresults/block-qa/docs/source/concepts-document-content-type/documents-policy-guidance-lead.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/build-the-l1-knowledge-graph.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/derive-content.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/editing-an-ingested-source.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/extract-structure.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/how-much-of-this-does-dublin-core-carry.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/ingest-the-theme.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/library-is-l1.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/overview.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/the-l1-completeness-gate.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/the-pipeline.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/uploads-and-library-are-two-stages-of-one-pipeline.qa.jsonresults/block-qa/docs/source/guides-document-ingestion/what-is-not-built-yet.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/1-scaffold-the-folio.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/2-the-content-model.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/3-author-with-the-agent.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/4-validate.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/5-render.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/carrying-a-recommendation.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/moving-between-content-types.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/not-implemented.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/overview.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/the-kinds-you-may-use.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/uses-matters-more-here-than-in-a-paper.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/what-a-document-folio-is-lead.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/what-a-document-folio-is.qa.jsonresults/block-qa/docs/source/guides-writing-a-document/where-things-are.qa.jsonresults/block-qa/docs/source/process-evidence/authority.qa.jsonresults/block-qa/docs/source/process-evidence/grading-and-gaps.qa.jsonresults/block-qa/docs/source/process-evidence/overview.qa.jsonresults/block-qa/docs/source/process-evidence/pico.qa.jsonresults/block-qa/docs/source/process-evidence/review-first.qa.jsonresults/block-qa/docs/source/process-evidence/the-subprocess.qa.jsonresults/block-qa/docs/source/process-evidence/three-classes.qa.jsonresults/block-qa/docs/source/process-evidence/what-is-not-built.qa.jsonresults/block-qa/docs/source/process-evidence/why-this-is-a-subprocess.qa.jsonresults/block-qa/docs/source/process-publication-workflow/activities-and-the-skills-that-implement-them.qa.jsonresults/block-qa/docs/source/process-publication-workflow/agents-and-system-actors.qa.jsonresults/block-qa/docs/source/process-publication-workflow/changing-these-diagrams.qa.jsonresults/block-qa/docs/source/process-publication-workflow/content-lifecycle-overview-lead.qa.jsonresults/block-qa/docs/source/process-publication-workflow/content-lifecycle-overview.qa.jsonresults/block-qa/docs/source/process-publication-workflow/editing-and-the-hci-validation-gate-lead.qa.jsonresults/block-qa/docs/source/process-publication-workflow/every-workflow-in-the-repo.qa.jsonresults/block-qa/docs/source/process-publication-workflow/from-corpus-to-published-folio-lead.qa.jsonresults/block-qa/docs/source/process-publication-workflow/from-corpus-to-published-folio.qa.jsonresults/block-qa/docs/source/process-publication-workflow/how-to-read-them.qa.jsonresults/block-qa/docs/source/process-publication-workflow/mechanical-vs-non-mechanical-validation.qa.jsonresults/block-qa/docs/source/process-publication-workflow/overview.qa.jsonresults/block-qa/docs/source/process-publication-workflow/people.qa.jsonresults/block-qa/docs/source/process-publication-workflow/see-also.qa.jsonresults/block-qa/docs/source/process-publication-workflow/some-decisions-are-computed-not-judged.qa.jsonresults/block-qa/docs/source/process-publication-workflow/the-base-processes-are-strict.qa.jsonresults/block-qa/docs/source/process-publication-workflow/the-one-rule-this-diagram-exists-to-state.qa.jsonresults/block-qa/docs/source/process-publication-workflow/the-work-plan-tasks-as-beans.qa.jsonresults/block-qa/docs/source/process-publication-workflow/they-also-run.qa.jsonresults/block-qa/docs/source/process-publication-workflow/which-diagrams-are-bpmn-and-which-are-not.qa.jsonresults/block-qa/docs/source/process-publication-workflow/who-is-who.qa.jsonresults/kg-qa.manifest.jsonresults/kg-qa/processes/conduct/decisions/folio-intent.kg-qa.jsonresults/kg-qa/processes/conduct/decisions/pages-live-gate.kg-qa.jsonresults/kg-qa/processes/conduct/getting-started.kg-qa.jsonresults/kg-qa/processes/content/authoring-a-document.kg-qa.jsonresults/kg-qa/processes/content/content-change-review.kg-qa.jsonresults/kg-qa/processes/content/content-lifecycle.kg-qa.jsonresults/kg-qa/processes/content/decisions/draft-qa-gate.kg-qa.jsonresults/kg-qa/processes/content/decisions/review-coverage-gate.kg-qa.jsonresults/kg-qa/processes/content/draft-to-publication.kg-qa.jsonresults/kg-qa/processes/content/editing-hci-validation.kg-qa.jsonresults/kg-qa/processes/content/evidence-retrieval.kg-qa.jsonresults/kg-qa/processes/content/public-comment.kg-qa.jsonresults/kg-qa/processes/library/deep-document-research.kg-qa.jsonresults/kg-qa/processes/library/ingest-build-l1-kg.kg-qa.jsonresults/kg-qa/processes/library/ingest-derive-content.kg-qa.jsonresults/kg-qa/processes/library/ingest-extract-structure.kg-qa.jsonresults/kg-qa/processes/library/ingest-l1-completeness-gate.kg-qa.jsonresults/kg-qa/processes/library/l1-document-ingestion.kg-qa.jsonresults/kg-qa/processes/ui/board-open-close.kg-qa.jsonresults/kg-qa/processes/ui/board-place-note.kg-qa.jsonresults/kg-qa/processes/ui/board-relocate.kg-qa.jsonresults/kg-qa/scenarios/kg.kg-qa.jsonresults/kg-qa/skills/content/content-lifecycle-ext/corpus-commit-contract.kg-qa.jsonresults/kg-qa/skills/content/content-lifecycle-ext/quality-control.kg-qa.jsonresults/kg-qa/skills/content/content-lifecycle-ext/registry-authority-contract.kg-qa.jsonresults/kg-qa/skills/content/folio-document-adapter/block-actions.kg-qa.jsonresults/kg-qa/skills/content/folio-document-adapter/document-authoring.kg-qa.jsonresults/kg-qa/skills/content/folio-document-adapter/document-publishing.kg-qa.jsonresults/kg-qa/skills/content/folio-document-adapter/document-structure.kg-qa.jsonresults/kg-qa/skills/content/folio-document-adapter/normative-statements.kg-qa.jsonresults/kg-qa/skills/content/folio-document-adapter/public-comment.kg-qa.jsonresults/kg-qa/skills/content/requirements-planning/plan-request-gate.kg-qa.jsonresults/kg-qa/skills/content/requirements-planning/requirement-definition.kg-qa.jsonresults/kg-qa/skills/deep-document-research.kg-qa.jsonresults/kg-qa/skills/library/catalogue/dublin-core-renderings.kg-qa.jsonresults/kg-qa/skills/library/catalogue/oxigraph-catalogue-search.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/archiving-arxiv.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/archiving-web-pages.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/bib-human-review.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/bib-photo-ingestion-watcher.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/bib-qa.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/filing-dublin-core.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/glossary-build.kg-qa.jsonresults/kg-qa/skills/library/cataloguing/ontologist.kg-qa.jsonresults/kg-qa/skills/library/ingestion/document-intake.kg-qa.jsonresults/kg-qa/skills/library/ingestion/l1-coverage.kg-qa.jsonresults/kg-qa/skills/library/ingestion/l1-document-ingestion.kg-qa.jsonresults/kg-qa/skills/library/ingestion/tabular-metadata.kg-qa.jsonresults/kg-qa/tools/block-actions.kg-qa.jsonresults/kg-qa/tools/dublin-core-render.kg-qa.jsonresults/kg-qa/tools/folio-changeset.kg-qa.jsonresults/kg-qa/tools/folio-review-comment-move.kg-qa.jsonresults/kg-qa/tools/folio-review-comments.kg-qa.jsonresults/kg-qa/tools/folio-review-coverage.kg-qa.jsonresults/kg-qa/tools/glossary-build.kg-qa.jsonresults/kg-qa/tools/l1-coverage.kg-qa.jsonresults/library-qa/arxiv-2510.21603v1.qa-results.jsonresults/tabular-real-sources/country-codes.csvw.jsonresults/tabular-real-sources/immz-dak-core-data-dictionary.csvw.jsonresults/tabular-real-sources/immz-dak-decision-support-logic.csvw.jsonresults/tabular-real-sources/sources.jsonresults/witnesses/concepts-content-lifecycle/qa-index.jsonresults/witnesses/concepts-content-lifecycle/the-content-lifecycle.block.jsonresults/witnesses/concepts-content-lifecycle/the-content-lifecycle.kg.jsonresults/witnesses/concepts-document-content-type/carrying-a-normative-statement.block.jsonresults/witnesses/concepts-document-content-type/documents-policy-guidance.kg.jsonresults/witnesses/concepts-document-content-type/qa-index.jsonresults/witnesses/guides-document-ingestion/build-the-l1-knowledge-graph.block.jsonresults/witnesses/guides-document-ingestion/build-the-l1-knowledge-graph.kg.jsonresults/witnesses/guides-document-ingestion/derive-content.block.jsonresults/witnesses/guides-document-ingestion/derive-content.kg.jsonresults/witnesses/guides-document-ingestion/editing-an-ingested-source.block.jsonresults/witnesses/guides-document-ingestion/extract-structure.block.jsonresults/witnesses/guides-document-ingestion/extract-structure.kg.jsonresults/witnesses/guides-document-ingestion/how-much-of-this-does-dublin-core-carry.block.jsonresults/witnesses/guides-document-ingestion/ingest-the-theme.block.jsonresults/witnesses/guides-document-ingestion/ingest-the-theme.kg.jsonresults/witnesses/guides-document-ingestion/library-is-l1.block.jsonresults/witnesses/guides-document-ingestion/overview.block.jsonresults/witnesses/guides-document-ingestion/qa-index.jsonresults/witnesses/guides-document-ingestion/the-l1-completeness-gate.block.jsonresults/witnesses/guides-document-ingestion/the-l1-completeness-gate.kg.jsonresults/witnesses/guides-document-ingestion/the-pipeline.block.jsonresults/witnesses/guides-document-ingestion/the-pipeline.kg.jsonresults/witnesses/guides-document-ingestion/uploads-and-library-are-two-stages-of-one-pipeline.block.jsonresults/witnesses/guides-document-ingestion/uploads-and-library-are-two-stages-of-one-pipeline.kg.jsonresults/witnesses/guides-document-ingestion/what-is-not-built-yet.block.jsonresults/witnesses/guides-writing-a-document/1-scaffold-the-folio.block.jsonresults/witnesses/guides-writing-a-document/2-the-content-model.block.jsonresults/witnesses/guides-writing-a-document/3-author-with-the-agent.block.jsonresults/witnesses/guides-writing-a-document/4-validate.block.jsonresults/witnesses/guides-writing-a-document/5-render.block.jsonresults/witnesses/guides-writing-a-document/carrying-a-recommendation.block.jsonresults/witnesses/guides-writing-a-document/moving-between-content-types.block.jsonresults/witnesses/guides-writing-a-document/not-implemented.block.jsonresults/witnesses/guides-writing-a-document/overview.block.jsonresults/witnesses/guides-writing-a-document/qa-index.jsonresults/witnesses/guides-writing-a-document/the-kinds-you-may-use.block.jsonresults/witnesses/guides-writing-a-document/uses-matters-more-here-than-in-a-paper.block.jsonresults/witnesses/guides-writing-a-document/what-a-document-folio-is.block.jsonresults/witnesses/guides-writing-a-document/what-a-document-folio-is.kg.jsonresults/witnesses/guides-writing-a-document/where-things-are.block.jsonresults/witnesses/process-evidence/authority.block.jsonresults/witnesses/process-evidence/grading-and-gaps.block.jsonresults/witnesses/process-evidence/overview.block.jsonresults/witnesses/process-evidence/pico.block.jsonresults/witnesses/process-evidence/qa-index.jsonresults/witnesses/process-evidence/review-first.block.jsonresults/witnesses/process-evidence/the-subprocess.kg.jsonresults/witnesses/process-evidence/three-classes.block.jsonresults/witnesses/process-evidence/what-is-not-built.block.jsonresults/witnesses/process-evidence/why-this-is-a-subprocess.block.jsonresults/witnesses/process-publication-workflow/activities-and-the-skills-that-implement-them.block.jsonresults/witnesses/process-publication-workflow/agents-and-system-actors.block.jsonresults/witnesses/process-publication-workflow/changing-these-diagrams.block.jsonresults/witnesses/process-publication-workflow/content-lifecycle-overview.block.jsonresults/witnesses/process-publication-workflow/content-lifecycle-overview.kg.jsonresults/witnesses/process-publication-workflow/editing-and-the-hci-validation-gate.kg.jsonresults/witnesses/process-publication-workflow/every-workflow-in-the-repo.block.jsonresults/witnesses/process-publication-workflow/from-corpus-to-published-folio.block.jsonresults/witnesses/process-publication-workflow/from-corpus-to-published-folio.kg.jsonresults/witnesses/process-publication-workflow/how-to-read-them.block.jsonresults/witnesses/process-publication-workflow/mechanical-vs-non-mechanical-validation.block.jsonresults/witnesses/process-publication-workflow/overview.block.jsonresults/witnesses/process-publication-workflow/people.block.jsonresults/witnesses/process-publication-workflow/qa-index.jsonresults/witnesses/process-publication-workflow/see-also.block.jsonresults/witnesses/process-publication-workflow/some-decisions-are-computed-not-judged.block.jsonresults/witnesses/process-publication-workflow/the-base-processes-are-strict.block.jsonresults/witnesses/process-publication-workflow/the-one-rule-this-diagram-exists-to-state.block.jsonresults/witnesses/process-publication-workflow/the-work-plan-tasks-as-beans.block.jsonresults/witnesses/process-publication-workflow/they-also-run.block.jsonresults/witnesses/process-publication-workflow/which-diagrams-are-bpmn-and-which-are-not.block.jsonresults/witnesses/process-publication-workflow/who-is-who.block.json