You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
Dynamic Title Resolution & Post-Hook Synchronization:
Automatically infers canonical human-readable titles from # Feature Specification: <Title> in spec.md (and primary headings in bug reports and assessment intakes).
Added PLACEHOLDER_TOKENS filter to ignore template placeholders ([FEATURE NAME], [FEATURE_TITLE], UNTITLED), falling back to clean humanized slugs.
Synchronizes finalized titles into lifecycle.md frontmatter and markdown headings on after_specify post-hook and during downstream milestone completions.
Automatically updates .specify/lifecycle-overview.md with synchronized titles across all tracks.
Continuous Title Drift Protection:
Dynamically detects and adopts title renames in spec.md during clarify, plan, or manual edits without incrementing revision_count or mutating transition histories.
Safe Pre-Hook Feature Bootstrapping:
Detects when before_specify runs without an explicit target directory while .specify/feature.json references an already-converged feature, safely bypassing pre-hook mutation with an informational notice to prevent corrupting historical artifacts.
Pre- and post-execution hooks detect and restore missing executable permissions (chmod +x) on scripts/lifecycle-engine.py on first run, resolving an upstream Spec Kit CLI archive extraction edge case that only restores .sh files.
scripts/package-release.sh normalizes file permissions (0755) on all runtime scripts before bundling distribution archives.
Workspace discovery engine ignores .specify/extensions/ to prevent installed extensions from polluting repository lifecycle metrics.