diff --git a/manifest.json b/manifest.json index 8d6cefe..222fab3 100644 --- a/manifest.json +++ b/manifest.json @@ -1,12 +1,10 @@ { "version": "2", - "updated_at": "2026-05-15T12:29:33Z", "skills": { "databricks-apps": { "version": "0.1.1", "description": "Databricks Apps development and deployment (evaluates analytics vs synced tables data access)", "experimental": false, - "updated_at": "2026-05-15T12:19:02Z", "files": [ "SKILL.md", "agents/openai.yaml", @@ -33,7 +31,6 @@ "version": "0.1.0", "description": "Core Databricks skill for CLI, auth, and data exploration", "experimental": false, - "updated_at": "2026-05-12T22:07:25Z", "files": [ "SKILL.md", "agents/openai.yaml", @@ -48,7 +45,6 @@ "version": "0.0.0", "description": "Declarative Automation Bundles (DABs) for deploying and managing Databricks resources", "experimental": false, - "updated_at": "2026-05-12T20:04:29Z", "files": [ "SKILL.md", "agents/openai.yaml", @@ -66,7 +62,6 @@ "version": "0.1.0", "description": "Databricks Jobs orchestration and scheduling", "experimental": false, - "updated_at": "2026-05-12T20:04:29Z", "files": [ "SKILL.md", "agents/openai.yaml", @@ -78,7 +73,6 @@ "version": "0.1.0", "description": "Databricks Lakebase Postgres: projects, scaling, connectivity, synced tables, and Data API", "experimental": false, - "updated_at": "2026-05-15T12:29:29Z", "files": [ "SKILL.md", "agents/openai.yaml", @@ -97,7 +91,6 @@ "version": "0.1.0", "description": "Databricks Model Serving endpoint management", "experimental": false, - "updated_at": "2026-05-15T12:19:44Z", "files": [ "SKILL.md", "agents/openai.yaml", @@ -110,7 +103,6 @@ "version": "0.1.0", "description": "Databricks Pipelines (DLT) for ETL and streaming", "experimental": false, - "updated_at": "2026-05-15T12:14:27Z", "files": [ "SKILL.md", "agents/openai.yaml", @@ -157,7 +149,6 @@ "version": "0.1.0", "description": "Migrate Databricks workloads from classic compute to serverless compute, including compatibility checks and concrete fixes", "experimental": false, - "updated_at": "2026-05-12T20:04:29Z", "files": [ "SKILL.md", "agents/openai.yaml", diff --git a/scripts/skills.py b/scripts/skills.py index cdfdcf7..0f5aa99 100644 --- a/scripts/skills.py +++ b/scripts/skills.py @@ -6,7 +6,6 @@ import re import shutil import sys -from datetime import datetime, timezone from pathlib import Path @@ -92,8 +91,8 @@ def iter_skill_files(skill_path: Path): """Yield tracked files in a skill directory, skipping VCS-ignored noise. Filters out dot-prefixed paths (.DS_Store, .git, etc.), __pycache__ - directories, and *.pyc files so manifest output and updated_at timestamps - stay reproducible across machines. + directories, and *.pyc files so manifest output stays reproducible + across machines. """ for file_path in skill_path.rglob("*"): if not file_path.is_file(): @@ -108,22 +107,6 @@ def iter_skill_files(skill_path: Path): yield file_path -def get_skill_updated_at(skill_path: Path) -> str: - """Get the most recent modification time of any file in the skill directory.""" - latest_mtime = 0.0 - for file_path in iter_skill_files(skill_path): - mtime = file_path.stat().st_mtime - if mtime > latest_mtime: - latest_mtime = mtime - - if latest_mtime == 0.0: - return datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ") - - return datetime.fromtimestamp(latest_mtime, timezone.utc).strftime( - "%Y-%m-%dT%H:%M:%SZ" - ) - - # --------------------------------------------------------------------------- # Sync # --------------------------------------------------------------------------- @@ -132,7 +115,7 @@ def sync_assets(repo_root: Path) -> int: """Copy shared assets from repo root into each skill directory. Only writes when content differs. Uses shutil.copy2 to preserve mtime - from the source so that skill updated_at timestamps stay stable. + from the source. Returns count of files written. """ @@ -216,7 +199,6 @@ def generate_manifest(repo_root: Path) -> dict: "version": extract_version_from_skill(skill_dir), "description": metadata.get("description", ""), "experimental": metadata.get("experimental", False), - "updated_at": get_skill_updated_at(skill_dir), "files": files, } @@ -231,7 +213,6 @@ def generate_manifest(repo_root: Path) -> dict: return { "version": "2", - "updated_at": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"), "skills": skills, } @@ -243,12 +224,10 @@ def generate_manifest(repo_root: Path) -> dict: def normalize_manifest(manifest: dict) -> dict: """Normalize manifest for comparison by excluding volatile fields.""" normalized = manifest.copy() - normalized.pop("updated_at", None) skills = {} for name, skill in manifest.get("skills", {}).items(): skill_copy = skill.copy() - skill_copy.pop("updated_at", None) skill_copy.pop("base_revision", None) skills[name] = skill_copy