Skip to content

XLSForm chapter: mark features the CDL pipeline doesn't support #29

Description

@jstet

src/content/pages/xlsform-standard.mdx (919 lines) is a good XLSForm reference, and it isn't wrong about XLSForm. But it documents features the CDL pipeline (FormTransform, qwacback, formulaid) rejects or only partly supports, as if they worked here. It also reaches agents: the page is part of llm-xlsform.txt and llm-phases12-xlsform.txt, which formulaid's skill build fetches.

The pipeline is an allowlist defined by the survey type registry in CorrelAid/formtransform. What isn't registered is rejected, not approximated. Reference: https://github.com/CorrelAid/formtransform#supported-xlsform-subset

Sections to mark (checked against formtransform v0.1.4)

Heading (line) Status in the CDL pipeline
### Rang (226) not supported: rank isn't registered; a form using it is rejected
## Berechnung (523) not supported: calculate isn't registered
### Externe CSV-Daten (395) not supported: attached CSVs for lookups aren't
### Mehrfachauswahl aus Datei (187) partly: select_one_from_file / select_multiple_from_file convert only with a registered vocabulary (today iso_3166_1.csv). XML/GeoJSON files, other CSVs and choice_filter (the country=${cou} example) are rejected
### Bereich (253) partly: range converts (since formtransform v0.1.2). LimeSurvey enforces the start/end bounds, and integers when the step is whole, but not the step itself, and shows a number field, not a slider

Also mark the matching rows of the type table under ## Fragetypen (lines 76–90): rank and calculate (not supported), and range, select_one_from_file, select_multiple_from_file (partly). Also check ### Werte in Auswahllisten oder angehängten Dateien nachschlagen (365) and mark it if it relies on attached files.

Steps

  1. Add one reusable MDX component with two variants, e.g. <Unsupported /> and <Unsupported partial>…</Unsupported>, not a hand-written paragraph per heading. Its text says the feature isn't (or is only partly) supported by the CDL pipeline, that a form using it is rejected by FormTransform/qwacback, and links the supported subset. A component makes the next addition cheap, and lets Add a methodology-only llm endpoint (phases 1–2 without the XLSForm spec) #28 (the methodology endpoint) find these blocks programmatically.
  2. Place it under each heading above, with the one-line reason from the table. Keep reasons short; don't copy the type list.
  3. Add the same statement once near the top of the page, before ## Fragetypen, so a skimming reader sees it.
  4. Make sure the marker text survives into the plain-text llm*.txt output (src/lib/utils/llm-txt.ts). Agents must see it too.

Acceptance criteria

  • Every heading in the table carries the marker; the top-of-page note exists
  • The marker text appears in the built dist/llm-xlsform.txt
  • bun run build passes
  • Don't rename headings, and keep # XLSForm-Dokumentation exactly as is (formulaid slices by it)

Rules (apply to all site changes around formtransform)

  • Don't restate the supported XLSForm subset in prose. Link to it: https://github.com/CorrelAid/formtransform#supported-xlsform-subset. A hand-copied type list on the site becomes a third source of truth, after the registry and the generated skill.

  • Don't rename or delete these snippet paths. Three apps fetch them at build time through the GitHub API, and each falls back to an empty string, so a rename doesn't fail a build. It silently empties a section of the app:

    App Fetches
    formtransform-app src/content/snippets/formtransform/{en,de}.html, liability/{en,de}.html
    qwac qwac/{en,de}.html, liability/{en,de}.html
    formulaid formulaid/{en,de}.html, liability/{en,de}.html
  • Headings in the llm*.txt endpoints are an interface. formulaid's scripts/build_skill.sh fetches llm-phases12-xlsform.txt and slices it by the headings # XLSForm-Dokumentation and # Fragen formulieren. Don't change them without telling CorrelAid/formulaid.

  • German is primary; EN/DE snippets stay in sync. The apps render whichever locale the visitor has.

  • Registry facts belong to CorrelAid/formtransform. If the site needs a machine-readable list of supported types, open an issue there. Don't copy JSON into the site.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions