adopt the current agentic-os hook baseline (managed block is fossilized at v0.18.0/github) + give the MCP a Steam icon #4

Closed
opened 2026-07-04 09:40:57 +00:00 by coilyco-ops · 2 comments
Member

Two items, same repo, one run.

1. Refresh the managed agentic-os hook block

.pre-commit-config.yaml carries a managed block pinned to rev: v0.18.0 on the github.com remote - a hook list from before code-comments, yaml-strict, leak-guard, and the check-skills rename existed. Consequence Kai hit today: YAML comment discipline is not enforced here at all (e.g. .forgejo/workflows/build-publish.yml carries multi-line comment blocks below content that the current hook forbids).

  • Rewrite the managed block to match the current canonical shape: https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os at the current release rev, with the current hook id set (see any up-to-date consumer, e.g. coilyco-bridge/deploy at v0.102.0+, or regenerate with agentic-os scripts/apply-agentic-os-hooks.py, available in the container substrate).
  • Run pre-commit run --all-files and fix what the new hooks flag. Expect code-comments violations in the workflow YAML (move rationale to the top header block per the YAML rule) and possibly doc-layout caps.
  • Add [tool.agentic-os.*] excludes to pyproject.toml only where the deploy repo precedent genuinely applies (e.g. the .pre-commit-config.yaml self-exclusion for the managed BEGIN/END marker comments).

2. Steam icon on the MCP server

Kai wants the steam-mcp connector tile in claude.ai to show the Steam icon instead of the generic placeholder. The MCP spec added an icons field on the server implementation metadata (verify against the current spec revision and whatever the repo's pinned python MCP SDK / FastMCP version supports - bump the pin if the field arrived later). Wire the Steam logo (an official brand asset, size-appropriate, committed to the repo or embedded as a data URI) into the server so clients that render server icons pick it up. Done-condition: the server's initialize response carries the icon metadata (assert it in a test); the visual claude.ai check is a human follow-up, so note it in your closing comment rather than blocking on it.

Provenance: kai-desktop-tower session 2026-07-04. Fleet hook-drift survey found coilyco-gaming (this repo + eco-app) as the only org still on the v0.18.0 github-era block; eco-app gets the sibling issue.

Two items, same repo, one run. ## 1. Refresh the managed agentic-os hook block `.pre-commit-config.yaml` carries a managed block pinned to `rev: v0.18.0` on the **github.com** remote - a hook list from before `code-comments`, `yaml-strict`, `leak-guard`, and the `check-skills` rename existed. Consequence Kai hit today: YAML comment discipline is not enforced here at all (e.g. `.forgejo/workflows/build-publish.yml` carries multi-line comment blocks below content that the current hook forbids). * Rewrite the managed block to match the current canonical shape: `https://forgejo.coilysiren.me/coilyco-flight-deck/agentic-os` at the current release rev, with the current hook id set (see any up-to-date consumer, e.g. coilyco-bridge/deploy at v0.102.0+, or regenerate with agentic-os `scripts/apply-agentic-os-hooks.py`, available in the container substrate). * Run `pre-commit run --all-files` and fix what the new hooks flag. Expect code-comments violations in the workflow YAML (move rationale to the top header block per the YAML rule) and possibly doc-layout caps. * Add `[tool.agentic-os.*]` excludes to pyproject.toml only where the deploy repo precedent genuinely applies (e.g. the `.pre-commit-config.yaml` self-exclusion for the managed BEGIN/END marker comments). ## 2. Steam icon on the MCP server Kai wants the steam-mcp connector tile in claude.ai to show the Steam icon instead of the generic placeholder. The MCP spec added an `icons` field on the server implementation metadata (verify against the current spec revision and whatever the repo's pinned python MCP SDK / FastMCP version supports - bump the pin if the field arrived later). Wire the Steam logo (an official brand asset, size-appropriate, committed to the repo or embedded as a data URI) into the server so clients that render server icons pick it up. Done-condition: the server's initialize response carries the icon metadata (assert it in a test); the visual claude.ai check is a human follow-up, so note it in your closing comment rather than blocking on it. Provenance: kai-desktop-tower session 2026-07-04. Fleet hook-drift survey found coilyco-gaming (this repo + eco-app) as the only org still on the v0.18.0 github-era block; eco-app gets the sibling issue.
Author
Member

🔒 Reserved by ward agent --driver claude — container engineer-claude-steam-ops-4 on host KAI-DESKTOP-TOWER is carrying this issue (reserved 2026-07-04T09:41:30Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

Do not comment on or edit this issue to steer the run while it is reserved. The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a new issue, dispatched fresh — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494).

— Claude (she/her), via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent --driver claude` — container `engineer-claude-steam-ops-4` on host `KAI-DESKTOP-TOWER` is carrying this issue (reserved 2026-07-04T09:41:30Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. **Do not comment on or edit this issue to steer the run while it is reserved.** The engineer seeded the body once at launch and never re-reads it, so a comment or edit reaches only human readers, never the running engineer. A correction goes to a **new issue, dispatched fresh** — that is the only channel that reaches a run in flight. Where the forge supports it, ward locks this conversation to make that a road-block rather than a convention (ward#494). <!-- ward-agent-signature --> — Claude (she/her), via `ward agent`
Owner

WARD-OUTCOME: done - refreshed the managed hook block to forgejo agentic-os v0.193.0 and wired Valve's Steam mark into serverInfo.icons, both landed on main (7454020).

Retro, candidly: both halves went smoother than I expected, and the interesting friction was all in the seams.

The hook refresh was the more mechanical of the two, but I didn't hand-copy the block - I imported the substrate apply-agentic-os-hooks.py and let it generate the canonical shape (rev + DEFAULT hook ids + the displaced check-merge-conflict), which felt right given the doctrine warning about guessing at generated artifacts. The code-comments hook then did exactly what the issue predicted: it flagged the workflow YAML, and also caught two pre-existing over-cap comment blocks in server.py that the v0.18.0 block never saw. Trimming those to two lines without losing the rationale meant folding the detail up into the module docstring rather than deleting it - the repo clearly values its comments, so I tried to relocate meaning, not amputate it.

The icon half surprised me by being a non-event: FastMCP 1.28.1 (already the pin, no bump needed) takes icons= directly and threads it straight through create_initialization_options into InitializeResult.serverInfo.icons, so I could assert the real init payload instead of a proxy. I verified the SVG asset actually packages into the wheel (the Dockerfile installs the built wheel, so a stray asset would silently vanish in-cluster) - it does, via hatchling's default inclusion.

Confidence: high on the mechanics. Tests green, full pre-commit green, wheel-packaging confirmed, data URI decodes back to the Steam mark. The one thing I cannot close from here is the actual visual - whether the claude.ai connector tile renders the icon is a human follow-up, as the issue noted. Worth an eye: I used an SVG data URI (scalable, self-contained), and if a client turns out to only render raster server icons, a small PNG variant would be the fix. No follow-up issue filed - nothing is broken, that is just the open visual check.

WARD-OUTCOME: done - refreshed the managed hook block to forgejo agentic-os v0.193.0 and wired Valve's Steam mark into serverInfo.icons, both landed on main (7454020). Retro, candidly: both halves went smoother than I expected, and the interesting friction was all in the seams. The hook refresh was the more mechanical of the two, but I didn't hand-copy the block - I imported the substrate `apply-agentic-os-hooks.py` and let it generate the canonical shape (rev + DEFAULT hook ids + the displaced check-merge-conflict), which felt right given the doctrine warning about guessing at generated artifacts. The `code-comments` hook then did exactly what the issue predicted: it flagged the workflow YAML, and also caught two pre-existing over-cap comment blocks in `server.py` that the v0.18.0 block never saw. Trimming those to two lines without losing the rationale meant folding the detail up into the module docstring rather than deleting it - the repo clearly values its comments, so I tried to relocate meaning, not amputate it. The icon half surprised me by being a non-event: FastMCP 1.28.1 (already the pin, no bump needed) takes `icons=` directly and threads it straight through `create_initialization_options` into `InitializeResult.serverInfo.icons`, so I could assert the real init payload instead of a proxy. I verified the SVG asset actually packages into the wheel (the Dockerfile installs the built wheel, so a stray asset would silently vanish in-cluster) - it does, via hatchling's default inclusion. Confidence: high on the mechanics. Tests green, full pre-commit green, wheel-packaging confirmed, data URI decodes back to the Steam mark. The one thing I cannot close from here is the actual visual - whether the claude.ai connector tile renders the icon is a human follow-up, as the issue noted. Worth an eye: I used an SVG data URI (scalable, self-contained), and if a client turns out to only render raster server icons, a small PNG variant would be the fix. No follow-up issue filed - nothing is broken, that is just the open visual check.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-gaming/steam-ops#4
No description provided.