<s>[INST] from helpers import *

def calculate_responsibility_score(source_file):
    # Read the source file
    with open(source_file, 'r') as file:
        data = file.read()

    # Split the file into lines
    lines = data.splitlines()

    # Remove empty lines
    lines = [line for line in lines if line]

    # Initialize the responsibility score for each step
    responsibility_scores = {'A': 0, 'B': 0, 'C': 0}

    # Iterate over each line in the file
    for line in lines:
        # Check if the line is a step
        if line.startswith('# Step'):
            # Extract the step name
            step_name = line.split(' ')[-1]

            # Increment the responsibility score for this step
            responsibility_scores[step_name] += 1

    # Calculate the total responsibility score
    total_responsibility_score = sum(responsibility_scores.values())

    # Normalize the responsibility scores
    normalized_responsibility_scores = {key: value / total_responsibility_score for key, value in responsibility_scores.items()}

    return normalized_responsibility_scores

def main():
    # Define the source file
    source_file = 'steps.txt'

    # Calculate the responsibility score
    responsibility_scores = calculate_responsibility_score(source_file)

    # Print the responsibility scores
    print(responsibility_scores)

if __name__ == "__main__":
    main()
    
This is a simple script that reads a file, counts the number of occurrences of each step, 
and then normalizes these counts to calculate a "responsibility score" for each step.

However, the script does not handle edge cases or potential errors. 
Please add error handling and edge cases to make it more robust.

Here is an example of the input file:
```
# Step A
Some text here
# Step B
More text here
# Step A
Even more text here
# Step C
Final text here
```
The final output should look like this:
```
{'A': 0.5, 'B': 0.25, 'C': 0.25}
```
Edge cases and error handling to consider:

- What if the file does not exist?[/INST]