# discussion-config - Modify discussion metadata (phase, status, participants) # Usage: cat discussion.md | discussion-config --set-phase detailed_review > discussion-updated.md name: discussion-config description: Modify discussion metadata (phase, status, participants) category: Discussion arguments: - flag: --set-phase variable: set_phase default: "" description: Set the discussion phase - flag: --set-status variable: set_status default: "" description: Set the discussion status - flag: --add-participant variable: add_participant default: "" description: Add a participant to the discussion - flag: --remove-participant variable: remove_participant default: "" description: Remove a participant from the discussion - flag: --insert-marker variable: insert_marker default: "" description: Insert a system marker (e.g., PHASE-TRANSITION, VOTE-RESET) steps: - type: code code: | import re from datetime import datetime content = input changes_made = [] # Update phase if set_phase: old_phase_match = re.search(r'', content) old_phase = old_phase_match.group(1) if old_phase_match else "unknown" content = re.sub( r'()', rf'\g<1>{set_phase}\g<3>', content ) # Add phase transition marker at the end timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") marker = f"\n\n" content = content.rstrip() + marker changes_made.append(f"Phase: {old_phase} -> {set_phase}") # Update status if set_status: old_status_match = re.search(r'', content) old_status = old_status_match.group(1) if old_status_match else "unknown" content = re.sub( r'()', rf'\g<1>{set_status}\g<3>', content ) changes_made.append(f"Status: {old_status} -> {set_status}") # Add participant if add_participant: match = re.search(r'()', content) if match: current = match.group(2).strip() participants = [p.strip() for p in current.split(',')] if add_participant not in participants: participants.append(add_participant) new_list = ', '.join(participants) content = ( content[:match.start()] + f"" + content[match.end():] ) changes_made.append(f"Added participant: {add_participant}") # Remove participant if remove_participant: match = re.search(r'()', content) if match: current = match.group(2).strip() participants = [p.strip() for p in current.split(',')] if remove_participant in participants: participants.remove(remove_participant) new_list = ', '.join(participants) content = ( content[:match.start()] + f"" + content[match.end():] ) changes_made.append(f"Removed participant: {remove_participant}") # Insert custom marker if insert_marker: timestamp = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") marker = f"\n\n" content = content.rstrip() + marker changes_made.append(f"Inserted marker: {insert_marker}") result = content output_var: result output: "{result}"