Initial commit
This commit is contained in:
49
hooks/track-current-story.py
Normal file
49
hooks/track-current-story.py
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Track Current Story Hook
|
||||
Purpose: Capture the story file being worked on from draft_story step
|
||||
Trigger: PostToolUse on Write operations
|
||||
Part of: PRISM Core Development Lifecycle
|
||||
"""
|
||||
|
||||
import sys
|
||||
import io
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
# Fix Windows console encoding for emoji support
|
||||
if sys.stdout.encoding != 'utf-8':
|
||||
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace')
|
||||
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace')
|
||||
|
||||
def main():
|
||||
# Claude Code passes parameters via environment variables
|
||||
# Not via stdin JSON
|
||||
|
||||
# Extract file path from environment variables
|
||||
file_path = os.environ.get('TOOL_PARAMS_file_path', '')
|
||||
|
||||
# Check if this is a story file being created/updated
|
||||
if re.match(r'^docs/stories/.*\.md$', file_path):
|
||||
# Save as current story being worked on
|
||||
with open('.prism-current-story.txt', 'w') as f:
|
||||
f.write(file_path)
|
||||
|
||||
# Extract story filename
|
||||
story_filename = Path(file_path).stem
|
||||
|
||||
# Log the story activation
|
||||
timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
with open('.prism-workflow.log', 'a') as log:
|
||||
log.write(f"{timestamp} | STORY_ACTIVE | {file_path}\n")
|
||||
|
||||
# Hooks should be silent on success
|
||||
# Success is indicated by exit code 0
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user