Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:51:34 +08:00
commit acde81dcfe
59 changed files with 22282 additions and 0 deletions

View 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()