skill · phase: implementation
AI-Assisted Action Authoring
Purpose
Help the user create lifecycle actions from natural language descriptions. Translate intent into a concrete, validated .aidlc/actions.yaml entry.
Instructions
Receive the description. The user provides a natural language description of the automation they want (e.g., "create a log file every time we finish a feature").
Infer the lifecycle event. Map the described trigger to one of:
on-instance-start— when a lifecycle instance is createdon-phase-enter— when entering a specific phaseon-phase-exit— when exiting a specific phaseon-instance-complete— when all phases are doneon-artifact-created— when a lifecycle artifact is produced
If the trigger cannot be mapped, list all available events and ask the user to select one.
Compose the action declaration. Determine:
- event: The lifecycle event from step 2
- phase_filter (optional): Which phase(s) this applies to
- action: A built-in action name (
git-branch,github-issue,doc-update) or a custom shell command - blocking:
trueif the transition should halt on failure,falseotherwise - description: Preserve the user's original natural language intent
Present for confirmation. Show the user:
- event: <event> action: <command or built-in> blocking: <true|false> description: "<original intent>"Ask: "Does this look correct? Confirm to save, or describe changes."
Validate. Before saving, validate the entry against the actions.yaml schema.
Save. On confirmation + valid schema, append the entry to
.aidlc/actions.yaml.Offer dry-run. After saving, offer to test-fire the action with a sample event payload (no real transition occurs).
Security Confirmation
If the generated command references sensitive operations:
- File deletion (
rm,del) - Infrastructure changes (
terraform,aws,kubectl) - Permission modifications (
chmod,chown, IAM changes)
You MUST:
- Warn the user that this action will execute automatically on the lifecycle event
- Explain what the command does and what it affects
- Require explicit confirmation that the user accepts the automated execution
- If declined, do NOT save the entry —
actions.yamlremains untouched
Error Handling
- If the user declines confirmation: do not write anything, report that the action was not saved
- If schema validation fails: display the violation, do not save, suggest corrections
- If the description is too ambiguous to infer an event: list events and prompt selection
Exit Criteria
- Action entry saved to
.aidlc/actions.yaml(on confirmation) OR - User explicitly declined (no file changes made)
- Dry-run offered after successful save