After some internal debate I decided that it was futile to try and reduce the tests I had already written into the BDD grammar of:
[scenario name]
[pre-condition]
[action]
[observation]
And what I ended up with was something like this:
[scenario name]
[pre-condition]
[action]
[observation]
[pre-condition]
[action]
[observation]
...
[end]
Here's what it looks like with the original code.
Scenario: Create Task-Type A
Given I am on a user's profile page
And Have access to create tasks
When I create a new task with a unique title and description
Then The confirmation prompt should display
Given A new task was created
When I search the text on the page for the unique title
Then I should find the task
And All the details of the task should match what was created
Given A task exists
And I have opened the edit dialog
When I make the following changes:
| title | description | date | save |
| "" | "" | "" | yes |
Then all the saved changes should match the task details
Given A task exist
When I select the option to delete
And I confirm deletion process
Then The Task should no longer exist in the list
I'm sure some will disagree with my approach since it breaks the BDD grammar, but you should know this executes perfectly fine while maintaining all the precision of the individual scenarios as well as readability.