ID:WORK-083Status:done
Create Shared Git Timestamp Utility
Priority:highComplexity:moderateMilestone:v1.0.0
No incremental history — criteria tracking started on Apr 17.
Create a shared utility in packages/content/ that batch-collects git timestamps (created and modified) for all files in a content directory. This replaces the per-package approach used by runes/plan/src/scanner.ts:getGitMtimes() with a general-purpose solution available to the entire content pipeline.
packages/content/ exports a function (e.g. getGitTimestamps) that returns Map<string, { created: string; modified: string }> for all files under a given directorygit log commands (not per-file) for both created and modified timestampsgit log --format="%at" --name-only --diff-filter=ACMR HEADgit log --format="%at" --name-only --diff-filter=A --reverse HEADYYYY-MM-DD)fs.stat() (birthtimeMs / mtimeMs) when git data is unavailable for a filegit rev-parse --is-shallow-repository and omits or marks created as unreliableloadContent() call (no cross-build caching needed)packages/content/src/timestamps.ts with the batch git timestamp collection logicrunes/plan/src/scanner.ts:getGitMtimes(), extended to also capture creation timesMap<string, { created: number; modified: number }> keyed by relative file pathrunes/plan/src/scanner.ts — existing getGitMtimes() implementation to draw from