Find Matching Tenders
sickn33/agentic-awesome-skills
Find open AU/NZ government tenders matching what a company does, ranked by fit with why and gap analysis.
Update the Sculptor help docs (docs/help/ in this repo) to match a specific Sculptor release.
$ npx skills add imbue-ai/sculptor --skill update-help-docs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install imbue-ai/sculptor update-help-docs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/imbue-ai/sculptor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/update-help-docs .claude/skills/update-help-docs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "update-help-docs" agent skill from https://github.com/imbue-ai/sculptor/tree/main/.claude/skills/update-help-docs into .claude/skills/update-help-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-help-docs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/imbue-ai/sculptor/tree/main/.claude/skills/update-help-docsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add imbue-ai/sculptor --skill update-help-docs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install imbue-ai/sculptor update-help-docs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/sculptor.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/update-help-docs .agents/skills/update-help-docs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "update-help-docs" agent skill from https://github.com/imbue-ai/sculptor/tree/main/.claude/skills/update-help-docs into .agents/skills/update-help-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-help-docs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add imbue-ai/sculptor --skill update-help-docs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install imbue-ai/sculptor update-help-docs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/sculptor.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/update-help-docs .cursor/skills/update-help-docs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "update-help-docs" agent skill from https://github.com/imbue-ai/sculptor/tree/main/.claude/skills/update-help-docs into .cursor/skills/update-help-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-help-docs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/imbue-ai/sculptor.git --path .claude/skills/update-help-docs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add imbue-ai/sculptor --skill update-help-docs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install imbue-ai/sculptor update-help-docs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/sculptor.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/update-help-docs .gemini/skills/update-help-docs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "update-help-docs" agent skill from https://github.com/imbue-ai/sculptor/tree/main/.claude/skills/update-help-docs into .gemini/skills/update-help-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-help-docs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install imbue-ai/sculptor update-help-docsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add imbue-ai/sculptor --skill update-help-docs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/imbue-ai/sculptor.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/update-help-docs .github/skills/update-help-docs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "update-help-docs" agent skill from https://github.com/imbue-ai/sculptor/tree/main/.claude/skills/update-help-docs into .github/skills/update-help-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-help-docs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add imbue-ai/sculptor --skill update-help-docs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install imbue-ai/sculptor update-help-docs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/sculptor.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/update-help-docs .opencode/skills/update-help-docs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "update-help-docs" agent skill from https://github.com/imbue-ai/sculptor/tree/main/.claude/skills/update-help-docs into .opencode/skills/update-help-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-help-docs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
update-help-docsUpdate the Sculptor help docs (docs/help/ in this repo) to match a specific Sculptor release.
Update Help Docs is an agent skill from imbue-ai/sculptor. Update the Sculptor help docs (docs/help/ in this repo) to match a specific Sculptor release. Must be run from a Sculptor checkout on the matching release branch. Audits the markdown against that source, rewrites stale text, and recaptures/processes screenshots via the /auto-qa-changes harness. Does NOT commit or push — hands back a dirty working tree for the user to review. Inputs: - Required: Sculptor version to target, e.g. "0.27". The skill verifies the current branch is release/sculptor-v<version.0 before…
Its SKILL.md is about 9.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/process-screenshots.py`).
The repository describes itself as: Build product with grounded, parallel coding agents. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f847102. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
gituvpython3justFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and uv, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Update Help Docs loads about 9.1k tokens when it runs. Until then it costs about 137 tokens; SKILL.md has 5,128 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from imbue-ai/sculptor at commit f847102, republished under its MIT licence (© imbue-ai). 5,128 words, ~9,110 tokens.
.claude/skills/update-help-docs/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.⚠️ Deprecated / optional — the help docs are no longer actively maintained. Refreshing
docs/help/is not a required release step and is no longer part of the promote-release follow-up. This skill still works if you deliberately want to update a specific page, but treat any run as optional — don't run it just because a release went out.
Note: docs live in this repo at
docs/help/. The Sculptor help docs live here, alongside the code. This skill edits the markdown and images underdocs/help/in the current checkout.Publishing:
/sculptor:helpfetches the docs live fromimbue-ai/sculptoron GitHub, so edits you make here go live to users once they land onmainthere. Editingdocs/help/in a local checkout does not by itself change what/sculptor:helpreturns.
This skill updates the docs under docs/help/ so their prose and screenshots match the current Sculptor app. The docs are served live to /sculptor:help, so accuracy matters: a wrong button name or a stale screenshot ends up in users' answers.
<major>.<minor>, e.g. 0.27. The skill expects you to already be on release/sculptor-v<version>.0 in the current checkout. It does not change branches for you — if you're on the wrong branch, it stops and tells you.
The help docs live at docs/help/ and the images at docs/help/images/. All paths in this document — both the docs and source-path references (sculptor/frontend/src/..., sculptor/sculptor/web/skills.py, etc.) — resolve against the current working directory, which must be the Sculptor checkout on the release branch.Phases 1–6 run on every invocation, in order, with no shortcuts.
Before starting, verify every item below. If any fails, stop and tell the user what needs to change — do not proceed, do not switch branches for them.
git rev-parse --abbrev-ref HEAD; it must equal release/sculptor-v<version>.0 (e.g. version 0.27 → branch release/sculptor-v0.27.0). If it doesn't match, tell the user they need to check out that branch first and re-invoke. Don't attempt the checkout yourself — they may have in-flight work on the current branch.git rev-parse HEAD. Keep it in conversation state.git status for docs/help/ — the user should be able to tell your changes apart from theirs. If docs/help/ already has uncommitted changes, ask before proceeding.uv, python3, and Pillow (PIL) are available (Pillow is used by the processing script and by the cropping step). The image-processing script is bundled with this skill at .claude/skills/update-help-docs/scripts/process-screenshots.py — it lives in the skill, not under docs/help/./auto-qa-changes skill is available. Read that skill before starting — Phase 4 launches its harness every run (to drive the per-image audit, even when no reshoot turns out to be needed), so you need the server lifecycle, port handling, and API details that this skill does not duplicate.A note on the branch-match rule: if the user just cut a new release, their local branch list may not have release/sculptor-v<version>.0 yet. Suggest git fetch --all --tags && git checkout release/sculptor-v<version>.0 in that case.
The docs are read by external customers running the installed Sculptor app. Three rules shape what belongs in the prose; apply them both in Phase 2 (what to flag as wrong) and Phase 3 (what to write). Violations of any rule are a WRONG verdict even if the underlying claim is technically accurate.
Use only words the user sees in the UI. If a concept exists in the code but has no visible name in the app, don't name it in the docs — describe the user-visible behavior instead.
Example: the frontend splits slash-picker entries across common/builtinSkills.ts and common/pseudoSkills.ts, but the / picker renders them identically. Docs should say "built-in commands" (or just list them); never "pseudo-skills".
Experimental and off-by-default features live on a dedicated page, not scattered through the main docs. If a feature requires a settings toggle, feature flag, or env var to turn on, most users will never encounter it. It belongs under a separate "Experimental features" page (create one if none exists yet); do not sprinkle it through Workspaces / Agents / Interface / Code Review / etc. A reader of a main page should come away understanding only the default-on behavior.
Example: in-place workspaces are off by default. They don't belong in the main Workspaces page. If a main page mentions them, that's a WRONG verdict in Phase 2 — the fix is to move the content to the Experimental page (or trim it), not to refine the wording in place.
No dev-build references. Customers install a packaged app. Don't mention uv run, just start, .dev0 version suffixes, cloning the Sculptor repo, running from source, or anything else that only applies to people developing Sculptor. Any existing dev-flow reference in the docs is a WRONG verdict.
Read every doc-page markdown file under docs/help/ in full, plus the index at docs/help/README.md. At the time of writing the pages are getting_started.md, workspaces.md, chat.md, terminal.md, agents.md, changes.md, pull_requests.md, slash_commands.md, command_palette.md, settings.md, and experimental/container_backend.md — but do not hard-code this list. Glob docs/help/**/*.md and read what is actually there.
While reading, build a list of every factual claim that needs verification. These typically fall into buckets:
~/.sculptor/workspaces/..., clone vs in-place layoutcmd+… table lines (paths are relative to docs/help/)Also list docs/help/images/. The repo stores only the final padded versions of each image (1200×800 sage-green-padded PNGs) — there is no separate raw/processed split. Note which images are referenced from markdown and which are orphaned.
Dispatch parallel Explore subagents, each owning one or two doc files, to verify the claims you listed in Phase 1. Each subagent should:
Parallelism matters: one subagent per 1–2 doc files keeps the main context small and the turnaround fast. Do not do the verification yourself in the main thread.
Sculptor source conventionally lives under sculptor/. Start from these anchors; let the code tell you the rest.
sculptor/frontend/src/pages/workspace/components/ChatInput.tsx, pages/workspace/components/chat-alpha/TurnFooter.tsxpages/workspace/WorkspaceLayoutShell.tsx, pages/workspace/WorkspaceHeader.tsx, components/nav/WorkspaceSidebar.tsxcomponents/sections/registry/panelRegistry.ts (panel names, icons, default sections), the panel components under pages/workspace/panels/ (ActionsPanel.tsx, ChangesPanel.tsx, TerminalPanelView.tsx, useTerminal.ts, …), components/actions/ActionDialog.tsxcommon/builtinSkills.ts, common/pseudoSkills.ts + the matcher in ChatInput.tsxcommon/keybindings/definitions.tspages/settings/SettingsPage.tsx and subsectionscomponents/sections/SectionHeader.tsx, components/sections/AddPanelDropdown.tsxsculptor/sculptor/utils/build.py (workspace layout), sculptor/sculptor/services/workspace_service/environment_manager/environments/clone_strategy.py, sculptor/sculptor/services/workspace_service/environment_manager/environments/local_terminal_manager.pymain.ts (container-backend URL regex, window config)sculptor/sculptor/constants.py — the ElementIDs StrEnumFor each doc file, produce a compact table: Claim | Status | Source — this is the input to Phase 3. Keep it in conversation state (no need to write to disk). Do not start editing until the table for every file is complete.
For text:
/sculptor:help ingests these docs verbatim, so partial is wrong.For images associated with the claim (by being inside the same doc section): any verdict other than VERIFIED marks the image for reshoot in Phase 4. "The image still looks plausible" does not override this — if the claim needed a rewrite, the illustrating image needs a reshoot.
rm docs/help/images/<name>.png./sculptor:help about it.Before advancing to Phase 3, confirm:
docs/help/**/*.md (plus the index at docs/help/README.md) has an audit table.file:line that proves the verdict.Edit each doc in place (prefer Edit for surgical changes; use Write for rewrites). Style rules observed in the existing docs:
**bold**, file paths and code in backticks--- separators between sections (paths are relative to docs/help/; the repo stores only the final padded image at docs/help/images/<name>.png)/sculptor:help skill that ingests the markdown and answers questions from it — so keep claims literal and verifiableWhen the top-level structure changes (a page added or removed), also update docs/help/README.md (the index / table of contents, with a one-line description per page).
Phase 4 always runs. It answers "which images need to be reshot?" — not "should I run this phase?". If the answer is zero, Phase 4 still runs through its preflight (launch harness, seed curated demo, audit each image against its spec) and produces an empty reshoot list.
The reshoot list is deterministic. An image goes on it if ANY of these are true:
"The image still looks plausible" is not a keep reason. "The image would be extra work to reshoot" is not a keep reason.
xterm.js uses @xterm/addon-webgl which produces a transparent canvas under headless Chromium. The manual-test harness must launch Chromium with --disable-webgl --disable-webgl2 so xterm falls back to the canvas renderer. If the terminal screenshot is empty or garbled, check sculptor/sculptor/testing/manual_test_harness.py for those flags. Headed mode does NOT fix this on macOS.--viewport-width 1920 --viewport-height 1200 — fixed-px UI chrome looks proportional rather than chunky.run_in_background. The tool timeout kills it. Use nohup … & with a pidfile, per the /auto-qa-changes skill.ONBOARDING_* testids before trying to reach workspaces.manual_test_repo / testing branch produces a workspace banner reading manual_test_repo › testing and file names like performance-log.txt and stuff.txt. That makes Sculptor look like internal tooling in every docs screenshot. Section 4.3 is mandatory, not a fallback./path/to/0012_get.png, focusing on whether the Actions panel is open on the right edge and whether the Add Action dialog is visible."~/.claude/skills/ and ~/.claude/commands/ on every picker open (see discover_skills in sculptor/sculptor/web/skills.py) — so whatever the person running the harness has installed leaks into the docs screenshot. If any image in the reshoot list shows the / picker open, rename both dirs out of the way and relaunch the harness before capturing:mv ~/.claude/skills ~/.claude/skills.docs-hidden 2>/dev/null || true
mv ~/.claude/commands ~/.claude/commands.docs-hidden 2>/dev/null || true
# … relaunch harness, capture slash picker, shut harness down …
mv ~/.claude/skills.docs-hidden ~/.claude/skills 2>/dev/null || true
mv ~/.claude/commands.docs-hidden ~/.claude/commands 2>/dev/null || true/batch, /clear, /context, /copy, /loop, /simplify) plus the four stock sculptor:* plugin skills (fix-bug, help, sculpt-cli, setup-repo). discover_skills also scans the repo's .claude/skills and .claude/commands, but because 4.3 mandates --project-path /tmp/sculptor-demo/widget-store (no .claude/ dir), the repo scan is a no-op — if the demo path ever changes, re-check this. Plugin skills live under the Sculptor install and stay visible. Verify before cropping: dispatch a subagent to read the raw source and confirm no row shows a "Custom" badge and no row has a name outside that set. If any Custom row is visible, the rename didn't take effect — reshoot, don't crop around it. Always restore both dirs before shutting down, even on error paths.Use the /auto-qa-changes skill for the actual launch — this skill does not re-document the server lifecycle. At minimum you need:
export SCREENSHOTS_DIR="$PWD/attachments/screenshots" # or any writable dir
mkdir -p "$SCREENSHOTS_DIR"
SCULPTOR_MANUAL_TEST_HIDE_FAKE_MODELS=1 \
nohup uv run --project sculptor python -m sculptor.testing.manual_test_server \
--screenshots-dir "$SCREENSHOTS_DIR" \
--viewport-width 1920 --viewport-height 1200 \
> /tmp/manual-test-server.log 2>&1 &
echo $! > /tmp/manual-test-server.pidThe SCULPTOR_MANUAL_TEST_HIDE_FAKE_MODELS=1 env var hides the "Fake Claude" and "Fake Claude 2" test-only models from the model picker. The harness normally turns on integration-testing mode (which shows them) so live tests can exercise them; for docs screenshots we want the production model list. This env var is read by manual_test_harness.py and flips TESTING__INTEGRATION_ENABLED=false only for this run — it does not affect regular integration tests.
Poll the log for the MANUAL_TEST_CONTROL_PORT= line to find the port. Hit /status until the server is ready. Dismiss onboarding as the first interaction.
The harness default (manual_test_repo / testing branch) is never acceptable in docs screenshots. Always seed a curated repo before launching the harness. This is not a fallback step — it runs unconditionally.
Create /tmp/sculptor-demo/widget-store/ as a recognizable TypeScript e-commerce sample:
package.json (name widget-store, a handful of deps), README.md, src/ with a few .ts files (e.g. products.ts, cart.ts, checkout.ts), tests/ with one test.git init, initial commit on main. The banner will show widget-store › <branch> — check it before you start capturing.Launch the harness with --project-path /tmp/sculptor-demo/widget-store. Create the workspace with a meaningful name (e.g. add-search-bar, wire-up-checkout) — not default, not test, not <feature>-module.
Drive the demo so that the following UI states all exist simultaneously — any of them may be needed by images in Phase 4.4 (which derives what to shoot from the current docs, not a hardcoded list here):
git log or a test run.Verify each before proceeding: banner shows widget-store, workspace name is meaningful, agent has in-progress todos, diff has ≥2 files, terminal has output, two agent tabs present. If any are missing, fix the setup — do not proceed to 4.5.
There is no hardcoded canonical image list in this skill — features come and go, and any list here would rot. The docs repo is the source of truth for which images currently exist; the markdown section that references each image is its spec.
For every image in docs/help/images/:
images/<name>.png? If nothing references it, the image is orphaned — flag it for the Phase 6 report, don't silently delete.rm docs/help/images/<name>.png. No reshoot.Spec-audit prompt for VERIFIED sections (run per image):
Read the section in
docs/help/<doc-file>that referencesimages/<name>.png, then look at the image atdocs/help/images/<name>.png. Against the current app at release<version>, does the image still accurately depict what the prose describes? Answer YES or NO plus one sentence. If NO, name what's different.
Then check for coverage gaps. Walk Phase 2's audit table for user-facing features in the release branch that are NOT covered by any existing doc section. For each such feature that rises to "most customers would ask /sculptor:help about this," surface a proposal in the Phase 6 report — do not create new doc pages or images inline. Each proposal includes:
Adding a new page or image is a scope change; let the user decide and re-run the skill (or hand-edit) to add them. Document the gap in the report, not in the diff.
Special case for the slash-commands image (if one exists in the docs): gotcha #7 applies — the ~/.claude/skills and ~/.claude/commands dirs must be renamed out of the way before the capture so the user's personal skills don't leak into the picker. The picker should show only the built-ins from common/builtinSkills.ts + common/pseudoSkills.ts and the stock sculptor:* plugin skills (audit-table can confirm the exact set for the release).
Final reshoot list for this run:
For every image on the reshoot list:
locate → click/type/hover/press → wait (for CHAT_INPUT) or wait_for_hidden (on THINKING_INDICATOR). Each step returns a numbered screenshot in $SCREENSHOTS_DIR (e.g., 0012_get.png).<path> focusing on X; confirm Y is visible and Z is not." If the subagent does not return a clean match to the 4.4 spec, fix the UI state and reshoot — do not carry a "close enough" frame into Phase 5.$SCREENSHOTS_DIR for now — do not copy it to docs/help/images/ yet. The repo only stores the final cropped + padded image; Phase 5 produces that and writes it directly to docs/help/images/<canonical-name>.png.rm docs/help/images/<name>.png and delete the  line from the doc.Before advancing to Phase 5, every item below must be true. If any is false, loop back inside Phase 4 — do not carry partial state forward.
--project-path /tmp/sculptor-demo/widget-store, not the default repo.add-search-bar), not default, test, or the prompt topic in snake-case.$SCREENSHOTS_DIR (subagent confirmed it matches the 4.4 spec). Phase 5 will crop, pad, and write the final image to docs/help/images/.manual_test_repo or the testing branch.--viewport-width 1920 --viewport-height 1200.Phase 5 always runs. Every image on the Phase 4 reshoot list is cropped here — the crop directs the reader's eye; there is no other form of emphasis.
The screenshots in the help docs are cropped views of the running app. No annotations, no spotlight dim, no arrows, no labels. The cropping is the pointing. Earlier iterations used tight crops around a single control or overlaid highlight boxes — both of those approaches lose the context a reader needs to locate the feature. Don't do either.
The crop rule. Every crop must satisfy three things:
Exception. An image whose purpose is to show the whole app at a glance — typically the hero/overview image referenced at the top of the docs — is not cropped. The whole viewport is the subject. You can tell from the referencing prose: if the section is an overview of the app or a landing page, don't crop; if the section is about a specific panel, control, or flow, do crop.
Reference examples to calibrate against:
Do the cropping with Pillow while the harness is still running — you need locate for the bounds.
For each image, locate the subject (use its test ID from sculptor/sculptor/constants.py) and any adjacent elements you plan to include for orientation. Viewport coordinates multiply by device_scale_factor (2 for the 1920×1200 → 3840×2400 retina PNG) to get image pixels.
Compute the crop bounds. Start from the subject's bbox with a small margin, then expand until the three rules in 5.1 are satisfied — no further.
Keep the verified raw capture in $SCREENSHOTS_DIR until 5.3 writes the final image to docs/help/images/<name>.png. The existing docs/help/images/<name>.png (if any) is the previous release's final padded image — leave it untouched until 5.3 overwrites it, so a failed crop doesn't lose the prior version.
Crop with Pillow, writing the cropped intermediate to a scratch path (not docs/help/images/ yet — 5.3 produces the padded final there):
from PIL import Image
img = Image.open(f"{SCREENSHOTS_DIR}/<raw-capture>.png")
crop = img.crop((left, top, right, bottom)) # image pixels
crop.save(f"{SCREENSHOTS_DIR}/<name>-cropped.png")Verification is mandatory and iterative — you may NOT skip it. The main thread cannot inspect the PNG itself; you must dispatch a subagent. Verify the cropped intermediate (before 5.3 pads it) — this is the last point at which the bounds are easy to fix. Use this exact three-question format (not a narrative prompt — the structure is what makes the verdict unambiguous):
Look at
$SCREENSHOTS_DIR/<name>-cropped.png. The subject this image is meant to show is <concrete description, e.g. "the Files panel with Changes tab active and the 'Commit N changes' button visible">. Answer each question on its own line:(a) Is the entire subject visible, with nothing cut off? YES or NO. If NO, name exactly what is missing or partially cut.
(b) Are any controls, labels, tabs, or text rows cut through mid-element (not cleanly bounded by a panel edge or divider)? YES or NO. If YES, name where.
(c) Can you tell where in the app the subject lives from the surrounding elements in the crop? YES or NO. If NO, say what context is missing.
Ship criteria. Advance only when (a) = YES, (b) = NO, and (c) = YES. Anything else — including a qualified YES such as "mostly visible" or "probably OK but the bottom edge is ambiguous" — means recompute bounds and recrop. Do not ship "close enough". Do not skip verification because the capture looked fine live — crops are computed from image pixels, which don't match what you saw in the harness, so regressions show up only here.
If iteration 2 still fails: go back a step. The raw capture may not contain what you need (subject too close to a viewport edge, modal obscuring it, etc.). Fix the capture, don't keep shaving pixels off the crop.
docs/help/images/The image-processing script lives with this skill (not under docs/help/). For each verified crop, run it directly against the cropped intermediate and write the padded result to docs/help/images/<name>.png:
python3 .claude/skills/update-help-docs/scripts/process-screenshots.py \
"$SCREENSHOTS_DIR/<name>-cropped.png" \
"docs/help/images/<name>.png"The script pads the crop with sage green (#A6AA91) to 1200×800 — aspect ratio preserved, image centered. This is the final form that lands in the repo; the markdown references it as images/<name>.png (relative from docs/help/). There is no separate processed/ subdir — the repo stores only the padded final.
Run this per image, on demand, as each crop is verified. There is no batch step.
Before advancing to Phase 6, every item below must be true. If any is false, loop back inside Phase 5.
$SCREENSHOTS_DIR) with (a) YES, (b) NO, (c) YES — explicit YES/NO answers, not qualified. Any qualified or negative answer was treated as a fail and the crop was redone. Verifications that were skipped, batched ("all look fine"), or self-assessed from the main thread don't count.process-screenshots.py was run and the padded 1200×800 result was written to docs/help/images/<name>.png. reference in markdown resolves to an existing file under docs/help/images/.~/.claude/skills and/or ~/.claude/commands for gotcha #7, move them back first. Do this before killing the server so a crash mid-shutdown doesn't strand the user's installed skills. Verify with ls ~/.claude/skills ~/.claude/commands that both are back in place.kill "$(cat /tmp/manual-test-server.pid)" && rm /tmp/manual-test-server.pid.git status and git diff --stat docs/help/. Report both to the user.release/sculptor-v0.27.0 at commit a1b2c3d." The user needs to know exactly what was measured.This is a repeat of the end-of-phase gates, consolidated. Every box must be ticked before reporting done — untick any box means loop back to the relevant phase.
Preconditions:
release/sculptor-v<version>.0 (matches the version input).Phase 2 (audit):
docs/help/**/*.md file (plus the index at docs/help/README.md) has an audit table with per-claim VERIFIED/PARTIAL/WRONG/MISLEADING verdicts.file:line.Phase 3 (rewrite):
file:line backing it.docs/help/README.md reflects any page-level additions/removals.Phase 4 (screenshots):
--project-path /tmp/sculptor-demo/widget-store.default, not test, not the prompt topic in snake-case).manual_test_repo or the testing branch.Phase 5 (crop + process):
$SCREENSHOTS_DIR) with (a) YES, (b) NO, (c) YES — explicit, not qualified. Anything else triggered a recrop.process-screenshots.py was run for each verified crop and the padded result was written to docs/help/images/<name>.png. in markdown resolves to an existing file under docs/help/images/.docs/help/images/ that aren't referenced from markdown (flag them in the report; don't silently delete).Phase 6 (shutdown):
git status + git diff --stat for docs/help/.© imbue-ai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in .claude/skills/update-help-docs of imbue-ai/sculptor.
Open the folder on GitHubat commit f847102
Update Help Docs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Update Help Docs this skillimbue-ai/sculptor | 236 | — | ~9.1k | Automated safety check: Pass | MIT | |
| Find Matching Tenderssickn33/agentic-awesome-skills | 47k | 1 repos | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Og URL Matchthedaviddias/Front-End-Checklist | 74k | — | ~543 | Automated safety check: Pass | MIT | |
| Matched Filteringbenchflow-ai/skillsbench | 1.8k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Fuzzy Matchbenchflow-ai/skillsbench | 1.8k | — | ~794 | Automated safety check: Pass | MIT | |
| Status Matchborski/travel-hacking-toolkit | 688 | — | ~3.6k | Automated safety check: Pass | MIT |
sickn33/agentic-awesome-skills
Find open AU/NZ government tenders matching what a company does, ranked by fit with why and gap analysis.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing Open Graph tags or investigating why social share counts appear low.
benchflow-ai/skillsbench
Matched filtering techniques for gravitational wave detection.
benchflow-ai/skillsbench
A toolkit for fuzzy string matching and data reconciliation.
borski/travel-hacking-toolkit
Status match and status challenge rules for airlines and hotels.
mohitagw15856/pm-claude-skills
Get a retailer to match a lower price you found — or refund the difference when the price drops right after you bought — with the request written and the exact proof to show.
imbue-ai/sculptor
QA the Sculptor mobile web UI on a real iOS Simulator, driven headlessly from a Mac.
imbue-ai/sculptor
Compare React component render counts between origin/main and the current branch during a user-defined UI scenario (e.g.
imbue-ai/sculptor
Post a one-line PR announcement to a Slack channel, and mark it :merged: when the PR merges.
imbue-ai/sculptor
Run Claude programmatically against collections of files in the codebase.
imbue-ai/sculptor
Build or modify a Sculptor extension — a runtime ESM module loaded into the Sculptor UI.
imbue-ai/sculptor
Review a set of code changes against Sculptor's review categories and produce a markdown findings table.
Update the Sculptor help docs (docs/help/ in this repo) to match a specific Sculptor release. Update Help Docs is an agent skill from imbue-ai/sculptor. Update the Sculptor help docs (docs/help/ in this repo) to match a specific Sculptor release.
Run `npx skills add imbue-ai/sculptor --skill update-help-docs -a claude-code`. Or copy the skill folder (.claude/skills/update-help-docs in imbue-ai/sculptor) into .claude/skills/update-help-docs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add imbue-ai/sculptor --skill update-help-docs -a codex`. Or copy the skill folder (.claude/skills/update-help-docs in imbue-ai/sculptor) into .agents/skills/update-help-docs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add imbue-ai/sculptor --skill update-help-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-help-docs, .gemini/skills/update-help-docs, .github/skills/update-help-docs and .opencode/skills/update-help-docs in your project.
Going by SKILL.md and its folder, Update Help Docs needs Python for the scripts in its folder and the command-line tools its instructions call (git, uv, python3 and just). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and uv, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Update Help Docs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 9.1k tokens (SKILL.md is roughly 36k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Update Help Docs: Find Matching Tenders (sickn33/agentic-awesome-skills, 47k stars), Og URL Match (thedaviddias/Front-End-Checklist, 74k stars), Matched Filtering (benchflow-ai/skillsbench, 1.8k stars) and Fuzzy Match (benchflow-ai/skillsbench, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
imbue-ai (a GitHub organization) maintains it in imbue-ai/sculptor, which has 236 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 7, 2026.
Source: imbue-ai/sculptor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.