Skip to content

feat(deploy-to-cloud-engine): document app icon metadata (__META_BASE_URL + __META_ICON_PATH)#228

Merged
raymondk merged 2 commits into
mainfrom
skill/deploy-cloud-engine-app-icon
Jun 24, 2026
Merged

feat(deploy-to-cloud-engine): document app icon metadata (__META_BASE_URL + __META_ICON_PATH)#228
raymondk merged 2 commits into
mainfrom
skill/deploy-cloud-engine-app-icon

Conversation

@artkorotkikh-dfinity

@artkorotkikh-dfinity artkorotkikh-dfinity commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Motivation

The deploy-to-cloud-engine skill could name an app in the engine console but not give it an icon. I tried to add one and used the wrong env var (__META_ICON_LINK), which the console ignores. Checked the control-panel source: the icon comes from __META_BASE_URL + __META_ICON_PATH read off the main canister, so this documents it.

Changes

  • Added a Step 2 section documenting __META_BASE_URL and __META_ICON_PATH, both set on the main canister, for the console app icon.
  • Documented the rules: both vars are required, read only from the main canister, the base must be an absolute https:// URL, and the icon path is a served asset path (not a data: URI).
  • Added two pitfalls: inventing an icon variable (e.g. __META_ICON_LINK), and setting the icon on the wrong canister or without a base URL.
  • Updated the skill description and the Verify step to mention the icon.
  • Added icon evals (naming an app plus an adversarial data-URI / wrong-canister case) and a should_trigger query for giving an app an icon.

…console

The skill covered name/label/Open metadata but not the app icon. Add the
icon pair, with behavior verified against the console source (the
control-panel frontend that renders these), not guessed:

- `__META_BASE_URL` — app 'Open' link and icon base; must be an absolute
  https URL (the console rejects non-https / data: / javascript:).
- `__META_ICON_PATH` — icon path resolved against the base
  (new URL(iconPath, baseUrl)); rendered as <img src>.
- Both are read ONLY from the main canister; the icon has no fallback, so
  a missing/invalid base or a path on a side canister means no icon.
- The variable is `__META_ICON_PATH`, not `__META_ICON_LINK`/`_ICON`/`_LOGO`
  (a common wrong guess) — Pitfall 8 calls this out.
- Env values are length-capped (~128 chars), so a data: URI does not fit;
  it is a served path by design. Pitfall 9 + the adversarial eval cover it.
- Note the deploy-twice ordering: the frontend canister id is only known
  after the first deploy, so set the base URL then re-deploy.

Evals: 'Give the app an icon' output eval, 'icon not showing (data URI /
wrong canister)' adversarial, and a should_trigger icon query.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@artkorotkikh-dfinity artkorotkikh-dfinity requested review from a team and JoshDFN as code owners June 24, 2026 08:26
@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown

Skill Validation Report

Validating skill: /home/runner/work/icskills/icskills/skills/deploy-to-cloud-engine

Structure

  • Pass: SKILL.md found

Frontmatter

  • Pass: name: "deploy-to-cloud-engine" (valid)
  • Pass: description: (997 chars)
  • Pass: license: "Apache-2.0"
  • Pass: compatibility: (127 chars)
  • Pass: metadata: (2 entries)

Markdown

  • Pass: no unclosed code fences found

Tokens

File Tokens
SKILL.md body 3,568
Total 3,568

Content Analysis

Metric Value
Word count 2,362
Code block ratio 0.07
Imperative ratio 0.11
Information density 0.09
Instruction specificity 1.00
Sections 9
List items 48
Code blocks 8

Contamination Analysis

Metric Value
Contamination level low
Contamination score 0.09
Primary language category shell
Scope breadth 3
  • Warning: Language mismatch: config (1 category differ from primary)

Result: passed

Project Checks


✓ Project checks passed for 1 skills (0 warnings)

@artkorotkikh-dfinity artkorotkikh-dfinity marked this pull request as draft June 24, 2026 08:32
@artkorotkikh-dfinity artkorotkikh-dfinity changed the title feat: document app icon (__META_BASE_URL + __META_ICON_PATH) in deploy-to-cloud-engine feat(deploy-to-cloud-engine): document app icon metadata (__META_BASE_URL + __META_ICON_PATH) Jun 24, 2026
@artkorotkikh-dfinity artkorotkikh-dfinity marked this pull request as ready for review June 24, 2026 09:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the deploy-to-cloud-engine skill documentation and evaluation suite so agents correctly set cloud-engine console metadata for both app naming and app icons, based on __META_BASE_URL + __META_ICON_PATH read from the main canister.

Changes:

  • Documented __META_BASE_URL and __META_ICON_PATH requirements, placement (main canister only), and validation/pitfalls in the skill guide.
  • Updated the skill frontmatter description and the Verify step to include icon behavior.
  • Added evaluation cases and trigger queries covering icon setup and adversarial misconfigurations.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
skills/deploy-to-cloud-engine/SKILL.md Documents icon metadata variables and clarifies how the engine console derives the app icon.
evaluations/deploy-to-cloud-engine.json Adds eval coverage and trigger queries for icon configuration and common misconfigurations.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread skills/deploy-to-cloud-engine/SKILL.md Outdated
…pen-link fallback

Address Copilot review on Step 2: separate which canister is the metadata
source (__META_MAIN_CANISTER) from the Open-button URL value (__META_BASE_URL).
Also correct the claim that an invalid/missing base URL drops the "Open" link —
per control-panel's grouping logic it falls back to the main canister's gateway
URL, so only the icon is lost.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@raymondk raymondk merged commit be19bd0 into main Jun 24, 2026
6 checks passed
@raymondk raymondk deleted the skill/deploy-cloud-engine-app-icon branch June 24, 2026 10:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants