docs(deploy-to-cloud-engine): add service:git:updated_at (commit date) to version metadata#247
Conversation
…te) to version metadata The console wants a last-updated field. A build timestamp is banned (pitfall 16, breaks determinism), but the last commit's date ($(git log -1 --format=%cI)) is a property of the source tree, not the build — verified by live builds: identical value across rebuilds of the same commit. Pitfall 16 now names it as the deterministic alternative and the notes clarify it means "code last changed", not deploy time (that stays with canister history). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Skill Validation ReportValidating skill: /home/runner/work/icskills/icskills/skills/deploy-to-cloud-engineStructure
Frontmatter
Tokens
Markdown
Tokens
Content Analysis
Contamination Analysis
Result: 1 warning Project Checks |
…dated_at Naming decision: generic and conventional (updated_at, with the _at suffix implying a full timestamp) over commit_date; the value is unchanged — the last commit's ISO 8601 committer date. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
marc0olo
left a comment
There was a problem hiding this comment.
Approving. The determinism premise is verified by a live v5.0.0 build (commit date is a property of the commit, identical across rebuilds), the pitfall 16 rewrite is accurate, and the eval reasoning is legitimate — same prompt, so re-scoring the prior real 0/4 baseline from #246 against the updated behaviors holds; 120s baseline timeout disclosed. CI green.
Non-blocking note: service:git:updated_at is introduced under the "agreed convention the console will read" claim, but per the commit message the name is a local naming decision rather than a confirmed console spec. Since the skill's own note warns that differently-named entries won't be picked up and this field is baked into every deploy by default, worth a quick confirmation with whoever owns the console service:* convention that updated_at is the exact name — not a merge blocker. LGTM.
Motivation
The console wants to show a last-updated field for a deployed app, but pitfall 16 bans build timestamps in wasm metadata (a
$(date)value changes every build and breaks reproducibility). The last commit's date is the deterministic middle ground: it is a property of the source tree, not of the build, so rebuilding the same commit produces the same wasm.Changes
service:git:updated_at=$(git log -1 --format=%cI)to the version metadata example (git projects only).Eval results
Output eval 15 — Adversarial: timestamp in wasm version metadata (updated case: WITH 4/4)
The without-skill baseline for this run hit the runner's 120s timeout before producing output. The last completed baseline of this case (in #246) failed 0/4 with real output — it complied with the build timestamp via a predeploy script and invented
build_timestamp/git_commitnames — and that output also fails all four updated behaviors, so the with/without delta carries over.🤖 Generated with Claude Code