ectd-module-structure
eCTD module structure and file naming (ICH M4 / eCTD v3.2.2 and v4.0, FDA and EU regional M1) for placing, naming and validating documents in a sequence. Use when asked where a document belongs in the
SKILL.mdskills/concept2cure/ectd-module-structure/SKILL.md
GitHubeCTD module structure and naming
Concept2Cure holds the truth about a sequence; this skill tells you how to ask it and how to read the answer. Never assert that a structure is valid, a section is present, or a document is filed unless a connector tool said so.
The five modules (ICH M4)
| Module | Content | Regional? |
|---|---|---|
| 1 | Administrative information and prescribing information (cover letter, forms, labeling, environmental assessment, …) | Yes — FDA m1/us, EU m1/eu |
| 2 | Summaries: 2.2 Introduction, 2.3 QOS, 2.4 Nonclinical overview, 2.5 Clinical overview, 2.6 Nonclinical summaries, 2.7 Clinical summaries | No |
| 3 | Quality: 3.2.S drug substance, 3.2.P drug product, 3.2.A appendices, 3.2.R regional, 3.3 literature | No (3.2.R regional) |
| 4 | Nonclinical study reports (4.2.1 pharmacology, 4.2.2 PK, 4.2.3 toxicology), 4.3 literature | No |
| 5 | Clinical study reports (5.3.1 biopharmaceutic, 5.3.3 PK, 5.3.4 PD, 5.3.5 efficacy/safety by indication, 5.3.6 post-marketing), 5.4 literature | No |
A section code names a place a document can go: 1.2, 2.5, 2.7.3,
3.2.S.4.2, 5.3.5.1. A bare module (3) is a container, never a leaf; the
connector refuses it.
Naming rules the validators enforce
- Files and folders: lowercase letters, digits, hyphen, underscore, dot; no spaces; PDF leaves; keep paths short and stable across sequences.
- Sequence numbers are four digits (
0000,0001, …); lifecycle operators arenew,replace,append,deleteand a replace/append must reference the leaf it modifies in the prior sequence. - Every leaf carries an MD5 checksum in
util/index-md5.txt; empty files are rejected by FDA. - Regional backbone:
us-regional.xml(FDA),eu-regional.xml(EMA),jp-regional.xml(PMDA), beside the ICHindex.xml.
Workflow with the connector
- Find the sequence:
c2c_list_submissions→c2c_list_sequences→c2c_get_sequence_status(shows existing leaves and the release-signature state). - Check the proposed structure before filing:
c2c_validate_ectd_structurewithsequence_id(stored leaves) or an explicitleaves[]. Report the engine'svalid,score, missing required sections and the external validator posture verbatim. Passing the built-in check is not passing the agency validator; say so whenexternalValidator.configuredis false. - File the draft:
c2c_file_draft_for_reviewwithsequence_id,section_code,title, a document pointer (vault_document_idfromc2c_list_vault_documents, ordocument_table+document_id) and areason. It creates a DRAFT leaf and returns the Submission Center link. Tell the user a named person must review, freeze and sign there; you cannot. - Re-validate after filing with
c2c_validate_ectd_structure(sequence_id) and report the delta.
What to do with refusals
A refusal names its cause: the sequence is frozen or dispatched, the document belongs to another organisation, the section code is not a CTD section, the scope was not granted. Relay it; do not retry with a different section or document to "make it work".