diff --git a/docs/tutorials/Transformers_and_Tasks/csv_to_oscal_cd.md b/docs/tutorials/Transformers_and_Tasks/csv_to_oscal_cd.md
index 00483a942..13aa4898d 100644
--- a/docs/tutorials/Transformers_and_Tasks/csv_to_oscal_cd.md
+++ b/docs/tutorials/Transformers_and_Tasks/csv_to_oscal_cd.md
@@ -202,34 +202,45 @@ Make these changes:
trestle.core.commands.task:101 WARNING: Config file was not configured with the appropriate section for the task: "[task.csv-to-oscal-cd]"
Help information for csv-to-oscal-cd task.
+Help information for csv-to-oscal-cd task.
+
Purpose: From csv produce OSCAL component_definition file.
Configuration flags sit under [task.csv-to-oscal-cd]:
- title = (required) the component definition title.
- version = (required) the component definition version.
- csv-file = (required) the path of the csv file.
- required columns: Rule_Id
- Rule_Description
- Profile_Reference_URL
- Profile_Description
- Component_Type
- Control_Mappings
- Resource
- optional columns: Parameter_Id
- Parameter_Description
- Parameter_Default_Value
- Parameter_Value_Alternatives
- Check_Id
- Check_Description
- Fetcher
- Fetcher_Description
- Resource_Instance_Type
- output-dir = (required) the path of the output directory for synthesized OSCAL .json files.
- namespace = (optional) the namespace for properties, e.g. https://oscal-compass.github.io/compliance-trestle/schemas/oscal/cd
- user-namespace = (optional) the user-namespace for properties, e.g. https://oscal-compass.github.io/compliance-trestle/schemas/oscal/cd/user-defined
- class.column-name = (optional) the class to associate with the specified column name, e.g. class.Rule_Id = scc_class
- output-overwrite = (optional) true [default] or false; replace existing output when true.
+ title = (required) the component definition title.
+ version = (required) the component definition version.
+ csv-file = (required) the path of the csv file. [1st row are column headings; 2nd row are column descriptions; 3rd row and beyond is data]
+ required columns: $$Component_Title
+ $$Component_Description
+ $$Component_Type
+ $$Rule_Id
+ $$Rule_Description (see note 1)
+ $$Profile_Source (see note 1)
+ $$Profile_Description (see note 1)
+ $$Control_Id_List (see note 1)
+ $$Namespace
+ optional columns: $Check_Id (see note 2)
+ $Check_Description (see note 2)
+ $Target_Component (see note 3)
+ $Original_Risk_Rating (see note 1)
+ $Adjusted_Risk_Rating (see note 1)
+ $Risk_Adjustment (see note 1)
+ $Parameter_Id (see notes 1, 5)
+ $Parameter_Description (see notes 1, 5)
+ $Parameter_Value_Alternatives (see notes 1, 5)
+ comment columns: #Informational (see note 4)
+ output-dir = (required) the path of the output directory for synthesized OSCAL .json files.
+ component-definition = (optional) the path of the existing component-definition OSCAL .json file.
+ class.column-name = (optional) the class to associate with the specified column name, e.g. class.Rule_Id = scc_class
+ output-overwrite = (optional) true [default] or false; replace existing output when true.
+ validate-controls = (optional) on, warn, or off [default]; validate controls exist in resolved profile.
+
+Notes: [1] column is ignored for validation component type
+ [2] column is required for validation component type
+ [3] column is optional for validation component type, but may be needed to prevent Rule_Id collisions
+ [4] column name starting with # causes column to be ignored
+ [5] additional parameters are specified by adding a common suffix per set, for example: Parameter_Id_1, Parameter_Description_1, ...Parameter_Id_2...
```
@@ -456,3 +467,17 @@ Congratulations! You have completed this tutorial.
+-----
+
+# Examples: csv files suitable for csv-to-oscsl-cd transformation
+
+The examples given here comprise csv files that can be transformed into OSCAL Component Definitions.
+The csv files comprise required headings and values expected by the trestle task transformer, and may present optional ones as well.
+
+1. OCP4 sample input
+
+This is a simple example csv that has just one rule per control and one check per rule: [ocp4-sample-input.csv](csv_to_oscal_cd/ocp4-sample-input.csv)
+
+2. Multiple occurrence sample input
+
+This is a simple example csv that has multiple checks per rule and multiple target-components per rule: [rule-name-overlap.csv](csv_to_oscal_cd/rule-name-overlap.csv)
diff --git a/docs/tutorials/Transformers_and_Tasks/csv_to_oscal_cd/rule-name-overlap.csv b/docs/tutorials/Transformers_and_Tasks/csv_to_oscal_cd/rule-name-overlap.csv
new file mode 100644
index 000000000..7a4140dcc
--- /dev/null
+++ b/docs/tutorials/Transformers_and_Tasks/csv_to_oscal_cd/rule-name-overlap.csv
@@ -0,0 +1,7 @@
+$$Component_Title,$$Component_Description,$$Component_Type,$$Rule_Id,$$Rule_Description,Check_Id,Check_Description,$$Namespace,Target_Component,$$Control_Id_List,$$Profile_Source,$$Profile_Description
+OSCO,OSCO,validation,RULE-1.1,RULE1.1,Check.1,Check.1,http://oscal-compass/compliance-trestle/schemas/oscal/cd,Target-A,,,
+OSCO,OSCO,validation,RULE-1.1,RULE1.1,Check.2,Check.2,http://oscal-compass/compliance-trestle/schemas/oscal/cd,Target-A,,,
+OSCO,OSCO,validation,RULE-1.1,RULE1.1,Check.3,Check.3,http://oscal-compass/compliance-trestle/schemas/oscal/cd,Target-A,,,
+OSCO,OSCO,validation,RULE-1.1,RULE1.1,Check.1,Check.1,http://oscal-compass/compliance-trestle/schemas/oscal/cd,Target-B,,,
+OSCO,OSCO,validation,RULE-1.1,RULE1.1,Check.2,Check.2,http://oscal-compass/compliance-trestle/schemas/oscal/cd,Target-B,,,
+OSCO,OSCO,validation,RULE-1.1,RULE1.1,Check.3,Check.3,http://oscal-compass/compliance-trestle/schemas/oscal/cd,Target-B,,,