Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/showcase.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Showcase overrides for this repository (content only; colours and fonts come from references/brand.yaml).
# The full description does not fit the banner's one-line subtitle, so a short factual subtitle is set here.
subtitle: "Hero banners, repo cards and estate standard checks"
# Persisted key chip and attribute chips. chips.attrs replaces the topic-derived attrs on both the banner and the card, so the runtime chip (Claude · Codex) is not repeated next to the key chip.
chips:
key: ["Claude + Codex"]
attrs: ["Python", "Offline"]
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ All notable changes to `github-showcase-skill` are recorded here. Versions follo

### Added

- This repository now bundles its own `assets/icon.png` (the normalized Codex-generated icon, provenance in `assets/PROMPTS.md`) and persists `chips.key` (`Claude + Codex`) and `chips.attrs` (`Python`, `Offline`) in `.github/showcase.yml`, so the banner and the card both take the same configured chips through `chips.derive` and the topic-derived `Claude · Codex` runtime chip is not repeated; a synthetic no-network regression test covers it. The README banner and card are regenerated from the committed configuration and icon (`banner.png` and `card.svg` are byte-identical to the visually reviewed render), and the icon provenance records the exact prompt, tool and hashes (#132).
- The pre-#61 override compatibility test now uses a minimal synthetic legacy art-direction fixture (`tests/fixtures/content/ART_DIRECTION.synthetic-legacy.md`, placeholder names and neutral colours, no production brand data) instead of a copy of the previous bundled template; the original stays in git history.
- `content icon prompt` takes `--seed N` to request an image seed. The prompt states it only when asked, and the markdown provenance line `Requested: 1 image; seed: ...` records `N` or `not supported` (#63). An invalid or missing glyph `size_class` stays `needs-writer` and the result (`note`, `invalid`) lists the allowed values WIDE, TALL, SQUARE and DIAGONAL with a one-line meaning each; the values are listed in `SKILL.md`, `references/content.md` and `references/art-direction.md` (#62).
- `content icon normalize` auto mode keys any uniform ground to transparent unless it is a dark night tile (luminance < 0.2 and not within dE 12 of the card colour), so a flat pale ground on a dark card no longer needs `--ground transparent`; `--ground keep|transparent` are unchanged. New `--ground-tolerance DE` (default 3.0) widens the corner match for slightly vignetted grounds (e.g. `--ground-tolerance 5`); above it `icon-ground` names the measured corner dE and the flag. A raised tolerance widens the keying threshold only above 3.0 and flattens a kept night tile so QA accepts it. Auto falls back to keying when a kept night tile would exceed the 300 KB budget; non-finite or negative `--ground-tolerance` is a usage error, and `--ground-tolerance 0` accepts identical corners as one ground (a positive tolerance keeps the strict boundary). The option A icon prompt (bundled and estate-format templates) states the exact flat `card_fill` ground with no vignette, texture, gradient, shadow or glow; the estate BACKGROUND heading now says one flat ground (not the avatar night tile), and the exact ground clause is now appended whenever a BACKGROUND replacement removed it (checked after all replacements). The soft 3 dE key alpha ramp applies only with a raised `--ground-tolerance`; the default transparent key is unchanged (original 0/255 step).
Expand Down
46 changes: 46 additions & 0 deletions assets/PROMPTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Image provenance

One block per committed generated asset (format: `references/art-direction.md`, "Provenance record").

## assets/icon.png
- Dates: original generation 2026-10-31 (Codex session; the record is preserved in commit `d162597ff629913dce5f43ae50f3fabb265a5ba8`); normalisation and regeneration of this repository's own outputs 2026-11-01.
- Tool: OpenAI built-in image generation invoked by Codex; model ID `not exposed` by the tool. No CLI transport is claimed.
- Seed: `not supported`
- Reference images: none
- Prompt (verbatim, the adapted prompt recorded in `d162597ff629913dce5f43ae50f3fabb265a5ba8:assets/PROMPTS.md`: genuinely transparent background, at least 16.5 percent margin, opaque artwork inside the central 688 by 688 square, and the single-candidate instruction appended to each of the four calls):

```text
[STYLE LOCK — completetech]
Clean glossy isometric 3D product illustration, orthographic isometric camera from the front-left. Every scene sits on one rounded-rectangle platform: deep navy (#001F3F) top, ink (#0F172A) sides, a thin glowing sky-blue (#00A7FD) edge line, floating above an empty background with a soft contact shadow. Objects are smooth satin plastic in sky blue (#00A7FD), azure (#0081ED), royal blue (#005ADD) and off-white (#F1F5F9), with small warm-gold (#FFC300) details. Glass parts are frosted translucent blue. Thin gold circuit traces ending in round solder pads link the objects across the platform top. Soft rounded geometry, subtle bevels, bloom on gold details only, key light from the upper left, calm and uncluttered.

[SUBJECT]
A curated stack of blank repository presentation cards, a blank terminal window and a magnifier that checks their alignment.

[OBJECTS]
Card stack, blank terminal window, magnifier.

[COMPOSITION]
Isolated platform and objects on a genuinely transparent background; no floor, grid, gradient or glow touching the edges; at least 16.5% transparent margin on all sides; all opaque artwork inside the central 688 by 688 pixel square. Square 1024x1024.

[PALETTE]
Use only these colors: #0F172A, #001F3F, #00A7FD, #0081ED, #005ADD, #FFC300, #F8FAFC, #F1F5F9, #64748B. Gold #FFC300 is for small details only.

[EXCLUSIONS]
No text, letters, numbers, symbols, words, labels, signatures, watermarks, logos, brand marks or interface text; every paper, screen and sign surface stays blank. No people, human faces or human hands. No photorealism, no clutter, no extra objects. No letters, typography, code, numbers, logos, marks or brand emblems. No check-mark symbols. Keep details bold enough to remain recognizable at 48 pixels.
Create exactly ONE finished square icon candidate, not a collage or sheet. Candidate N of a four-candidate selection. Maintain the exact family style; optimize for a legible, compact silhouette at 48 pixels. No text of any kind.
```

- Candidates: four separate single-image candidates (candidate N of a four-candidate selection); selected: candidate 1, because it preserves the requested card, window and magnifier composition, contains no text or brand marks and reads at 48 px. Raw candidate sha256 `4511e310598f834befb90777f67bae4d26289545ad1354a05c1f79c72f94cdb7` (private, kept out of the repository and never committed).
- Post-processing: `showcase.py content icon normalize --ground transparent` at merged commit `04fbc0a` (render verified at `6c31d31` in the exact-commit VM); output 1024x1024 PNG, 54099 bytes (52.8 KB), sha256 `a1bbf17b8f066ec7e8442a323d4b1a21656a8f8788a1e54ece6f83e76dde7bf5`.

## docs/images/banner.png
- Date: 2026-11-01
- Generated by `scripts/showcase.py banner` from the committed `.github/showcase.yml` and `assets/icon.png`, without `--chip`, `--key-chip` or `--icon`. Not hand-edited.
- Visually accepted by the root at `6924015` (receipt `visual-review-132-6924015.json`).
- sha256 `f6dcc89cc0159d1d458c26960f13a830f0a2d3636b1258dffd6e72a0f9bd3b46`

## docs/images/card.svg
- Date: 2026-11-01
- Generated by `scripts/showcase.py card` from the committed `.github/showcase.yml` and `assets/icon.png`, without `--chip`, `--key-chip` or `--icon`. Not hand-edited.
- Visually accepted by the root at `6924015` (receipt `visual-review-132-6924015.json`).
- sha256 `c44a9db0388202a334a2cf032cb8d27c562aa3bd4aee726d0351671d36d1b092`
Binary file added assets/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
160 changes: 80 additions & 80 deletions docs/images/.showcase.json
Original file line number Diff line number Diff line change
@@ -1,80 +1,80 @@
{
"config_sha256": "dc74956cdd1fec80148d97ba93ebbe148f0c659aeda2ccf070a28c37e6897023",
"fingerprint": "268b5e360b681be473d23fb9ae4fb610bf829740503920606e32eaa9b5d0e573",
"inputs": {
"description": "Generate CompleteTech LLC GitHub banners, cards, icons and READMEs, with repository checks and metadata plans.",
"icon_sha256": null,
"language": "Python",
"license": "MIT",
"override_sha256": "f9af3c1586bb0da3a83c465ba8c7b560324d8532fb4c7b685e111a76136230d3",
"owner": "CompleteTech-Skills",
"repo": "github-showcase-skill",
"topics": [
"agent-skills",
"agentic-ai",
"claude-skill",
"codex-skill",
"completetech",
"content-creation",
"python"
],
"type": "agent-skills",
"visibility": "public"
},
"outputs": {
"banner.png": {
"bytes": 254246,
"chips": [
{
"box": [
520,
241.5,
170.0,
38
],
"kind": "attr",
"source": "topics",
"text": "Claude · Codex"
},
{
"box": [
702.0,
241.5,
96.1,
38
],
"kind": "attr",
"source": "meta",
"text": "Python"
},
{
"box": [
810.1,
241.5,
91.6,
38
],
"kind": "attr",
"source": "readme",
"text": "Offline"
}
],
"icon_source": "org-mark",
"px": [
2560,
720
],
"repository_id": 1433830462,
"scale": 2,
"sha256": "e6c80860e630c78025fe69421ed039efc1366b6945850f77da27882e5763f6b7"
},
"card.svg": {
"bytes": 21554,
"repository_id": 1433830462,
"sha256": "949e6c541cf8cd1167be4789d15efc3712fc5624c043383460f06be061954fd2"
}
},
"schema": 1,
"skill_version": "1.0.0",
"standard": "ct-std-v1"
}
{
"config_sha256": "dc74956cdd1fec80148d97ba93ebbe148f0c659aeda2ccf070a28c37e6897023",
"fingerprint": "d95eaf1ad2b14d73419466b9c3d6dcea99ad79c9499601cf58aaf0bef7bb15a1",
"inputs": {
"description": "Generate CompleteTech LLC GitHub banners, cards, icons and READMEs, with repository checks and metadata plans.",
"icon_sha256": "a1bbf17b8f066ec7e8442a323d4b1a21656a8f8788a1e54ece6f83e76dde7bf5",
"language": "Python",
"license": "MIT",
"override_sha256": "750ad1a2898d2dedf41d61b6bbcd8304834e661a8c98eac2e5ca5251b4dc310d",
"owner": "CompleteTech-Skills",
"repo": "github-showcase-skill",
"topics": [
"agent-skills",
"agentic-ai",
"claude-skill",
"codex-skill",
"completetech",
"content-creation",
"python"
],
"type": "agent-skills",
"visibility": "public"
},
"outputs": {
"banner.png": {
"bytes": 211705,
"chips": [
{
"box": [
520,
241.5,
177.3,
38
],
"kind": "key",
"source": "override",
"text": "Claude + Codex"
},
{
"box": [
709.3,
241.5,
96.1,
38
],
"kind": "attr",
"source": "override",
"text": "Python"
},
{
"box": [
817.4,
241.5,
91.6,
38
],
"kind": "attr",
"source": "override",
"text": "Offline"
}
],
"icon_source": "repo",
"px": [
2560,
720
],
"repository_id": 1433830462,
"scale": 2,
"sha256": "f6dcc89cc0159d1d458c26960f13a830f0a2d3636b1258dffd6e72a0f9bd3b46"
},
"card.svg": {
"bytes": 27727,
"repository_id": 1433830462,
"sha256": "c44a9db0388202a334a2cf032cb8d27c562aa3bd4aee726d0351671d36d1b092"
}
},
"schema": 1,
"skill_version": "1.0.0",
"standard": "ct-std-v1"
}
Binary file modified docs/images/banner.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading