Check implementation backlog¶
The implementation now includes explicit source and bibliography transformations, independent document packages, review/reporting controls, and additional bounded PDF, metadata and structure checks. These additions close specific absence claims; they do not complete the full requirements. Broader syntax/geometry support, image preparation, richer PDF review output and platform/tool validation remain engineering work. Interpretation of scientific meaning, accessibility adequacy and anonymity still requires human judgment.
This inventory reconciles the original requirements
(a historical design record) and the original check ideas with the checker
implementations. The catalogue lists every registered diagnostic
code, including subchecks and preparation guards, and is generated from the
registered rules. The number of codes is not a denominator for completed
requirements; the grouped rows below also have different sizes and must not be
used to compute a completion percentage. No code is reserved here for an
unimplemented check.
How to read this backlog¶
Implemented means the narrowly stated behavior exists, within the stated boundary. It does not mean every related requirement or platform is covered.
Partial means related behavior exists, but the row names the missing part.
Not implemented means no corresponding checker or operation currently exists.
Unverified in a row means implementation exists but the named evidence or live-platform validation is missing; it is not an implementation claim.
Intentionally excluded means it must not become an implicit product feature.
Next prioritizes remaining first-release requirements; Extended covers deeper analysis; Optional requires explicit selection and, for remote services, explicit data-sharing authorization. None means no pending work for the narrow row or an intentional exclusion. These are planning priorities, not new release commitments.
All numerical limits, required fields, package policies and identity terms must
come from explicit user settings. An inventory is not a policy pass. Deterministic
observations and derived measurements must remain separate from heuristic
suspicions and semantic advice. Missing tools or uncertain interpretation must
produce an incomplete result, not a pass. Current settings are defined in
Settings,
ManuscriptOptions,
PdfInspectionOptions, and the typed
options in the additional *_checks.py modules. The additional-check example
shows the nested tables. No template registry, package policy or publisher limit
is maintained by the application. Online checks require both selection and
network permission; unavailable providers are not passes.
The preparation options and
example describe the new opt-in operations.
rendered_pdf_artwork applies to the final document; included_figure_artwork
applies separately to input PDFs. Regions and sample patches belong to each inspected PDF’s own
coordinate system. Final-document coordinates are not reused for figures.
Concrete remaining engineering includes image optimization/externalized-figure adapters, annotated PDF output, broader literal source forms and drawing/clip/mask coverage, OCR/automatic figure-table segmentation, Windows isolation and a web interface. Linux Bubblewrap, qpdf and MuPDF live validation is incomplete on the macOS development host. These gaps are separate from semantic questions that no current check answers, such as reference identity, declaration adequacy and natural reading order.
Compilation, templates and source structure¶
Status |
Priority |
Requirement and remaining behavior |
Current related behavior |
|---|---|---|---|
Implemented |
None |
Clean build, final-log errors/rerun requests, missing glyph and font warnings; reject stale or partial PDFs. |
|
Partial |
Next |
Dependency completeness for every explicitly selected document; extend literal adapters without guessing execution context. |
|
Implemented |
None |
Apply a user-supplied overfull-box tolerance and report the threshold comparison. |
|
Implemented |
None |
Check expected literal document class and required/forbidden class options. |
|
Partial |
Extended |
Inventory actual loaded classes/packages/options and identify existing local shadow copies. |
|
Partial |
Extended |
Compare supplied class/template files for integrity and version compatibility against a user-provided reference. |
|
Implemented |
None |
Enforce package deny and allow policies over a clearly stated loaded-package scope. |
|
Partial |
Extended |
Diagnose draft leftovers and suspicious spacing/layout manipulation: negative spacing, manual page breaks, shrinking, forced floats, margin/text-width/line-spacing overrides. |
|
Implemented |
None |
Require a nonempty supported abstract; apply explicit abstract-word and keyword limits. |
|
Partial |
Extended |
Detect abstract citations and apply an explicitly requested abbreviation policy. |
|
Partial |
Extended |
Heading depth, configured numbering, apparently empty sections, and hard-coded reference numbers. |
|
Partial |
Extended |
Unique labels and resolved references with generated/custom syntax support where feasible. |
|
Pages, geometry and fonts¶
Status |
Priority |
Requirement and remaining behavior |
Current related behavior |
|---|---|---|---|
Implemented |
None |
Configured total page budget, expected page dimensions and consistent dimensions. |
|
Implemented |
None |
Section-specific page budgets, with explicit treatment of references, appendices and supplements. |
|
Partial |
Extended |
Detect unintended spillover/leaking pages, near-empty pages and a blank final page. |
|
Partial |
Extended |
Printable-region and column bounds, including rotated/cropped pages and legitimate full-width material. |
|
Partial |
Extended |
Overflowing equations, figures, tables and captions; overlap and clipping candidates. |
|
Implemented |
None |
Configured embedded-font and Type 3 policies for font resources reported in the final PDF. |
|
Partial |
Extended |
Distinguish bitmap painting from vector painting in Type 3 glyph programs. |
|
Partial |
Extended |
Minimum rendered manuscript, equation, caption, table and figure-label text sizes. |
|
Figures and tables¶
Status |
Priority |
Requirement and remaining behavior |
Current related behavior |
|---|---|---|---|
Implemented |
None |
Check both effective raster-resolution axes at each placement reported by Poppler against an explicit minimum. |
|
Partial |
Extended |
Classify observed artwork composition and apply supplied category thresholds. |
|
Partial |
Extended |
Inspect included PDF figure fonts and attribute final-PDF font problems to an input figure when supported. |
|
Partial |
Extended |
Measure excessive figure whitespace/borders and possible cropping at supplied boundaries. |
|
Partial |
Extended |
Check rendered line weight, including scaled figure strokes. |
|
Partial |
Extended |
Inspect configured color encoding and measurable foreground/background contrast. |
|
Partial |
Extended |
Figure caption/label presence, label placement, unreferenced figures and first-reference order. |
|
Partial |
Extended |
Table caption/label presence, label placement, references and first-reference order. |
|
Partial |
Extended |
Table overflow, minimum rendered font size and rasterized-table candidates. |
|
Bibliography and citation correctness¶
Status |
Priority |
Requirement and remaining behavior |
Current related behavior |
|---|---|---|---|
Implemented |
None |
Local syntax, duplicate keys, repeated fields, undefined strings and supported relationship targets. |
|
Implemented |
None |
Resolve used citation keys before compilation as well as after it. |
|
Partial |
Next |
Detect uncited entries and offer a conservative cited-only bibliography. |
|
Partial |
Extended |
Distinguish exact duplicate identifiers from likely duplicate works. |
|
Implemented |
None |
Validate supported literal DOI syntax and offer visible DOI-prefix normalization. |
|
Implemented |
None |
Entry-type/user-configured required fields; missing title/authors/year/venue; page-range and URL syntax; capitalization protection. |
|
Implemented |
None |
Report missing DOI fields when applicable. |
|
Partial |
Optional |
Resolve DOIs and compare title, authors, year, venue and version with authoritative metadata. |
|
Partial |
Optional |
Suggest missing DOI candidates and published versions of preprints; merge only after explicit review. |
|
Implemented |
Optional |
Check reference URLs and replication/artifact links. |
|
Partial |
Optional |
Surface authoritative correction/retraction notices. |
|
Partial |
Next |
Bibliography formatting, explicit field removal, cited-only output, reviewed key/merge mappings, guarded metadata edits and optional ordering. |
|
Accessibility¶
Status |
Priority |
Requirement and remaining behavior |
Current related behavior |
|---|---|---|---|
Implemented |
None |
Required nonempty figure descriptions, including supported |
|
Not implemented |
Optional |
Description quality and adequacy. |
Requires human judgment or explicitly enabled, labeled advice with data-sharing consent; source presence cannot prove quality. |
Partial |
Extended |
Document language, PDF tagging, reading order, accessible links and table structure. |
|
Partial |
Next |
Searchable/readable text and possible scan-only or rasterized regions. |
|
Partial |
Extended |
Color-only encoding checks, measurable contrast, and grayscale previews. |
|
Submission bundle and PDF object checks¶
Status |
Priority |
Requirement and remaining behavior |
Current related behavior |
|---|---|---|---|
Partial |
Next |
Remove known debris and select needed project inputs without guessing uncertain dependencies. |
Preliminary |
Partial |
Next |
Comment/private-note cleanup and unfinished-source checks. |
|
Implemented |
None |
Reject unsafe archive paths/links and supported literal external source paths. |
Import rejects links, special files, absolute paths, traversal and normalized collisions; names that are only nonportable (`<>:” |
Implemented |
None |
Explain source constructs that require shell escape before building. |
Optional advisory |
Implemented |
None |
Scan likely secrets/private tokens with redacted findings and false-positive handling. |
Optional heuristic |
Implemented |
None |
Configurable allowed filename characters/lengths/types and final ZIP size. |
|
Implemented |
None |
Deterministic ZIP and fresh exact-extraction rebuild for each explicitly selected source package. |
|
Implemented |
None |
Configured absence of PDF encryption/password protection, forms, JavaScript and embedded attachments as reported by current tools. |
|
Partial |
Extended |
Inspect annotations and arbitrary active content/media. |
|
Partial |
Next |
Detect located crop/registration-mark candidates against explicit trim boundaries. |
|
Preparation and workflow backlog, outside the check-code count¶
Status |
Priority |
Requirement and remaining behavior |
Current related behavior |
|---|---|---|---|
Partial |
Next |
Automatic flat hierarchy and command-aware rewriting for a documented literal subset. |
|
Implemented |
None |
Explicit tex-fmt check/diff/application, project exclusions, protected regions and blank-line policies for supported source. |
|
Implemented |
None |
Assign explicit document roots and independent supplementary source packages; rebuild each solely from its archive. |
|
Partial |
Next |
Validate engines and explicit bibliography backends on restricted platform runtimes. |
pdfLaTeX/BibTeX workflows and XeLaTeX/LuaLaTeX smoke builds pass live on macOS. |
Implemented |
None |
Compare baseline, prepared, archive-rebuilt and explicitly supplied PDFs separately. |
|
Partial |
Next |
Baseline stability, explicit comparison tolerances and reviewed expected-output changes. |
|
Implemented |
None |
Scoped review controls, standalone PDF inspection and explicitly unverified diagnostic exports. |
|
Partial |
Extended |
Offline HTML reports, located-region diagrams, source before/after views and CI annotations; richer PDF review remains. |
Escaped HTML, source diffs, SVG coordinate diagrams, local PDF page links, CI annotations and bounded embedded before/after PDF pages with difference overlays exist. Annotated PDF output remains unimplemented. Preview omissions and capture failures do not change comparison findings. Reports and diagnostics remain outside source archives. |
Not implemented |
Optional |
Web interface using the same core, with service-wide budgets and isolated cancellation. |
CLI only. This is an interface/workflow item, not an additional check. See the separate parallel execution plan for scheduling work. |
Partial |
Optional |
Reviewed source merging, bibliography inlining, image optimization and externalized-figure preparation. |
|
Intentionally excluded |
None |
Maintained publisher/venue/year profiles, package catalogs, template registries and scraped submission policies. |
Users provide current constraints/reference files; generic checks must not claim publisher certification. |
Intentionally excluded |
None |
Implicit online checks/LLM advice, manuscript rewriting, scientific fact checking, venue upload and guaranteed acceptance/anonymity/accessibility. |
Optional remote/advice modules require explicit opt-in; human decisions and unsupported semantic claims cannot become deterministic passes. |
Evidence map and verification boundary¶
The entries below identify inspected implementations and behavioral tests supporting the implemented portions. They do not claim a fresh full-suite or live-tool pass from this documentation audit. Controlled-output unit tests establish adapter behavior; live tests are a separate gate and require an operational sandbox and tools. Absence statements above were checked against the implementation modules and configuration schema, not inferred from an unassigned code.
Additional-check evidence¶
The catalogue links each new code to intended-behavior tests, including valid, violating and unavailable/ambiguous evidence. The implementation/test pairs are:
Scope |
Implementation |
Behavioral tests |
|---|---|---|
Bibliography use and fields |
||
Build tolerance and package policy |
||
Actual loaded option registers |
||
Manuscript, metadata and floats |
||
Privacy and submission policies |
||
PDF measurements and object policies |
||
Optional online references |
||
Source transformations |
||
Bibliography transformations |
||
Artwork geometry, pixels and glyph programs |
|
|
Metadata edits and image metadata |
|
|
Author records |
||
PDF structure |
||
Review decisions and offline outputs |
|
|
Independent packages and repeated baselines |
||
Linux command construction and bibliography backend |
Online tests use fake transports, not live provider requests. Tool-output fixtures exercise Poppler/qpdf/MuPDF interpretation without claiming that each optional tool is installed or works on every PDF. Missing qpdf/mutool, unsupported object encoding, geometry uncertainty and unmeasured text cannot become successful checks. These component evidence boundaries also apply to the rows above.
Current macOS live smoke evidence covers two independent flat source packages
with selected bibliography formatting/pruning, private-comment removal, input
merging, repeated baselines and exact archive rebuilds. Separate literal-import,
subfile and input-merge fixtures passed page-count, extracted-text and exact
144-DPI render comparisons with unchanged originals. Actual kernel-option
instrumentation passed against an uninstrumented pdfLaTeX build; XeLaTeX and
LuaLaTeX option/build smoke tests also passed. This does not validate all options
or combinations. qpdf and MuPDF are not installed, and Linux isolation has not run
on Linux. The live Biber test and a realistic biblatex/Biber preparation test
pass on macOS with the sealed Biber copy; they run only with
FLEDGE_RUN_INTEGRATION=1.
Build evidence¶
build_project and
log_findings are exercised by
BuildTests:
test_failed_tool_never_accepts_partial_pdf,
test_final_rerun_request_blocks_success,
test_build_copy_has_fresh_output_and_safe_main,
test_external_recorder_dependency_blocks_success, and
test_build_log_check_codes_match_diagnostics.
RuntimeTests.test_missing_backend_never_runs_command covers unavailable isolation.
LiveIntegrationTests has separate
test_confined_process_cannot_read_or_write_outside_its_workspace and
test_confined_process_cannot_connect_to_network tests.
Source evidence¶
SourceGraph and
plan_flatten are exercised by
the source tests (test_source_analysis.py,
test_source_search_paths.py,
test_flat_layout.py and
test_source_commands.py):
test_markers_labels_and_refs_are_heuristics_not_blockers,
test_nested_paths_and_collisions_are_rewritten_not_globally_replaced,
test_dynamic_and_unsupported_commands_are_flat_blockers,
test_relocated_style_cannot_shadow_system_style,
test_sidecar_relationship_breakage_is_blocked, and
test_flattening_is_idempotent_and_keeps_utf8_bom_crlf.
New context/adapter cases include
test_import_contexts_resolve_nested_inputs_and_restore_outer_paths,
test_literal_subfile_body_and_parent_reference_are_flattened,
test_literal_reader_adapters_preserve_nonfile_arguments,
test_subfiles_bibliography_path_and_legacy_mode, and test_filename_overrides.
The separate source-transformation tests cover original-byte retention,
significant-percent/newline preservation, comment-wrapper retention, atomic
blocked plans, recursive input merging and supported/unsupported bibliography
inlining.
Manuscript evidence¶
check_manuscript is exercised by
ManuscriptTests:
test_expected_document_class_matches_and_mismatch_blocks,
test_class_options_report_missing_and_forbidden_values,
test_forbidden_packages_check_direct_local_graph_declarations,
test_required_abstract_rejects_missing_and_empty_content,
test_abstract_word_limits_use_documented_math_and_markup_counting,
test_keyword_limits_count_phrases_and_common_environments,
test_required_sections_match_literal_headings_not_body_claims, and
test_conditional_and_macro_generated_declarations_are_inconclusive.
PDF evidence¶
inspect_pdf is exercised by
PdfConstraintTests:
test_page_limit_boundary_and_overflow,
test_expected_dimensions_measure_every_page_with_pdf_point_tolerance,
test_page_consistency_uses_full_range_not_just_first_page,
test_image_resolution_checks_both_axes_and_repeated_placements,
test_font_embedding_violation_changes_status_and_zero_fonts_are_inconclusive,
test_forbidden_type3_font_policy_detects_only_type3,
test_encryption_policy_uses_explicit_reported_feature,
test_forms_policy_detects_acroform_and_xfa,
test_javascript_policy_requires_explicit_reported_value, and
test_attachments_policy_counts_embedded_files.
test_unconfigured_constraints_do_not_report_compliance and
test_partial_text_extraction_is_not_a_readability_pass guard evidence boundaries.
Bibliography evidence¶
check_bibliography_integrity and
normalize_dois are
exercised by BibliographyTests:
test_duplicate_keys_and_dois_include_conflicts_without_merging,
test_literal_relationships_and_builtin_months_are_checked,
test_invalid_plain_dois_and_ambiguous_markup_are_distinct,
test_doi_case_is_not_collapsed_for_exact_duplicate_detection,
test_malformed_file_is_never_partially_normalized, and
test_prefix_edits_preserve_braces_comments_case_and_unknown_fields.
Packaging evidence¶
import_project, plan_cleanup and create_archive
are exercised by ProjectTests:
test_unsafe_zip_names_are_rejected,
test_normalized_case_and_unicode_collisions_are_rejected,
test_zip_symlinks_and_special_files_are_rejected,
test_zip_actual_stream_bytes_are_bounded_independently_of_metadata,
test_cleanup_retains_dependencies_bibliography_styles_and_unknown_files, and
test_archive_bytes_ignore_input_modes_timestamps_and_creation_order.
Those cleanup tests cover the preliminary debris pass. Preparation’s mandatory
dependency selection is a separate stage, described under
package contents; --no-cleanup disables
only the preliminary pass.
Formatting evidence¶
format_project is exercised by
FormattingTests:
test_only_idempotent_output_is_proposed,
test_formatting_differences_preserve_original, and
test_resource_and_output_limits_block_even_with_zero_return_code.
test_project_exclusions, test_protected_regions and test_blank_line_policy
exercise matching, rejected modifications and incomplete protected contexts.
These are adapter-level checks, not proof that arbitrary TeX can be formatted.
Workflow evidence¶
run_job is exercised by
WorkflowTests:
test_flat_bundle_from_exact_extraction_and_serial_equivalence and
test_failed_final_build_never_releases_output.
compare_pdfs is exercised by
PdfTests:
test_rendered_change_is_detected_when_text_matches,
test_extracted_text_change_is_detected_when_raster_matches,
test_page_count_difference_identifies_missing_pages, and
test_missing_renderer_is_inconclusive_and_blocking.
The separate live acceptance test is
LiveIntegrationTests.test_nested_sources_bibliography_images_formatting_and_zip_rebuild.
Before closing a backlog row, implement the stated generic behavior, expose any required explicit settings, and add meaningful valid/violating/uncertain fixtures. Measure false positives for visual heuristics before promoting them to blockers. Update this inventory and the code catalogue together; passing a nearby test or adding a registry entry alone does not close the requirement.