Agent skill

Custom Image Tagger

by pnp in pnp/sharepoint-skills

Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update…

MITAuto-check passedDocuments & Office

Install Custom Image Tagger

skills CLI
$ npx skills add pnp/sharepoint-skills --skill custom-image-tagger -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install pnp/sharepoint-skills custom-image-tagger --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/pnp/sharepoint-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/Skills/custom-image-tagger/custom-image-tagger .claude/skills/custom-image-tagger && rm -rf skills-src

Use ~/.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/

Facts

Skill name
custom-image-tagger
GitHub stars
131
Token cost
~1.2k tokens
SKILL.md length
530 words
Files
1
Skills in repo
51
Repo updated
First seen
Licence
MIT

At a glance

Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update…

  • Works in 9 steps: Confirm selected files are images by… → Use analyze_image({listFullUrl,… → Use get_list_schema({listId, webUrl,… → …
  • Tasks that involve Cloud office suites
  • SKILL.md covers When to use, Inputs, Steps and Output format, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Custom Image Tagger is an agent skill from pnp/sharepoint-skills. Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update, and list-configuration tools. Use when the user says: - "Tag these images" - "Tag this construction image" - "Analyze these images and update the object columns" - "Populate Primary Objects and Background Objects for these photos" - "Identify visible objects in the selected construction photos"

Its SKILL.md is about 1.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering Cloud office suites. It works with Microsoft SharePoint. The repository describes itself as: Skills for Copilot in SharePoint. The licence is MIT.

When your agent uses it

  • Tasks that involve Cloud office suites

Example prompts

  • “Tag these images”
  • “Tag this construction image”
  • “Analyze these images and update the object columns”
  • “/custom-image-tagger”

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Confirm selected files are images by extension or file metadata. If no selected image is available, say so plainly and stop.
  2. Use analyze_image({listFullUrl, relativePaths, question}) once for all selected images. Ask for per-image output with
  3. Use get_list_schema({listId, webUrl, includeFields: true, includeContentTypes: false, includeHidden: false, includeReadOnly: false}) to…
  4. If Primary Objects / primaryObjects or Background Objects / backgroundObjects is missing, use create_or_update_list on the current library…
  5. Use list_items({listId, webUrl, filter, viewFields: ["ID", "FileLeafRef"], itemType: "files", recursive: true}) to find the list item IDs…
  6. Build one update_list_items_v2({items, listUrl, webUrl}) call for all matched images. Update only target columns that exist or were just…
  7. Keep each value under 255 characters for single-line text columns. Prefer fewer, high-confidence terms over long tag lists.
  8. If image analysis returns empty or uncertain content for an image, write Not found only when appropriate and do not invent objects.
  9. Return a concise per-image summary and confirm how many SharePoint items were updated. If object columns were created, mention that once…

What it can do on your machine

Read from SKILL.md and the folder at commit aa9eb14. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Custom Image Tagger loads about 1.2k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 530 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~131
When it runs · the whole SKILL.md, loaded when a task matches
~1.2k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from pnp/sharepoint-skills at commit aa9eb14, republished under its MIT licence (© pnp). 530 words, ~1,184 tokens.

Download SKILL.mdSave it as .claude/skills/custom-image-tagger/SKILL.md (or your agent's skills folder).
name
custom-image-tagger
description
Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update, and list-configuration tools. Use when the user says: - "Tag these images" - "Tag this construction image" - "Analyze these images and update the object columns" - "Populate Primary Objects and Background Objects for these photos" - "Identify visible objects in the selected construction photos"

Custom Image Tagger

When to use

Use this skill when the user wants selected construction images analyzed and tagged in the current SharePoint image library. It supports one or more selected image files and writes concise metadata into library columns for primary objects, background objects, scene content, and description.

Use it for image metadata tagging in construction image libraries, not for general document tagging or non-image files.

Inputs

  • One or more selected image files in the current SharePoint document library.
  • Current site, library URL, library path, and list ID from SharePoint context.
  • Target columns, resolved from schema when present:
    • Primary Objects / primaryObjects
    • Background Objects / backgroundObjects
    • Scene content / sceneContent
    • Description / _ExtendedDescription

Steps

  1. Confirm selected files are images by extension or file metadata. If no selected image is available, say so plainly and stop.
  2. Use analyze_image({listFullUrl, relativePaths, question}) once for all selected images. Ask for per-image output with:
    • primary objects as a single comma-delimited line
    • background objects as a single comma-delimited line
    • scene content as one concise sentence
    • optional tags as a concise comma-delimited line
  3. Use get_list_schema({listId, webUrl, includeFields: true, includeContentTypes: false, includeHidden: false, includeReadOnly: false}) to resolve available target columns and exact internal names.
  4. If Primary Objects / primaryObjects or Background Objects / backgroundObjects is missing, use create_or_update_list on the current library before updating items:
    • Keep the existing library settings.
    • Add a single-line text column titled Primary Objects with internal name primaryObjects when missing.
    • Add a single-line text column titled Background Objects with internal name backgroundObjects when missing.
    • Do not recreate or modify these columns if they already exist.
    • After creating columns, use the expected internal names primaryObjects and backgroundObjects; re-read schema only if the create/update result does not confirm the fields.
  5. Use list_items({listId, webUrl, filter, viewFields: ["ID", "FileLeafRef"], itemType: "files", recursive: true}) to find the list item IDs for the selected file names. Use FileLeafRef in CAML filters, not Title.
  6. Build one update_list_items_v2({items, listUrl, webUrl}) call for all matched images. Update only target columns that exist or were just created:
    • primaryObjects = primary objects line
    • backgroundObjects = background objects line
    • sceneContent = concise scene sentence, only when the column exists
    • _ExtendedDescription = Tags: <tag line> or a concise description if tags are not requested, only when the column exists
  7. Keep each value under 255 characters for single-line text columns. Prefer fewer, high-confidence terms over long tag lists.
  8. If image analysis returns empty or uncertain content for an image, write Not found only when appropriate and do not invent objects.
  9. Return a concise per-image summary and confirm how many SharePoint items were updated. If object columns were created, mention that once. If any selected file could not be matched to a list item, name it in the response.
Show full SKILL.md (80 more words)Show less

Output format

Return a concise result:

markdown
Updated <N> image(s). Created missing columns: <Primary Objects, Background Objects | none>.

- <filename>: Primary: <comma-delimited objects>; Background: <comma-delimited objects>; Scene: <sentence>

If an update fails, include the plain-language failure and do not claim the item was updated.

Example

User: "Tag these images"

Expected behavior:

  1. Analyze all selected images with analyze_image.
  2. Resolve columns with get_list_schema.
  3. Create Primary Objects and/or Background Objects as single-line text columns if missing.
  4. Find selected files with list_items using FileLeafRef.
  5. Batch update metadata with update_list_items_v2.
  6. Report the updated filenames, extracted metadata, and whether columns were created.

© pnp, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in Skills/custom-image-tagger/custom-image-tagger of pnp/sharepoint-skills.

Open the folder on GitHubat commit aa9eb14

Compare with similar skills

Custom Image Tagger 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.

Custom Image Tagger compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Custom Image Tagger this skillpnp/sharepoint-skills131—~1.2kAutomated safety check: PassMIT
Colleague DistillationZhixiangLuo/10xProductivity478—~2.1kAutomated safety check: NotesMIT
Msgraphcodemie-ai/codemie-code294—~4.1kAutomated safety check: PassApache-2.0
aai-cli Microsoft 365aai-labs/agent-barn109—~1.2kAutomated safety check: PassApache-2.0
Workiqmicrosoft/work-iq1k—~15kAutomated safety check: PassCustom licence
Workiq Previewmicrosoft/work-iq1k—~3.3kAutomated safety check: PassCustom licence

Similar skills

  • Colleague Distillation

    ZhixiangLuo/10xProductivity

    Distill a colleague into a reusable AI skill (work + persona) using tool connections — Slack, Slack AI, Jira, GHE, Bitbucket, Confluence, SharePoint, Teams, Outlook, Notion, Linear, Google Docs, and…

    478 GitHub stars~2.1k tokensUpdated 2 mo ago
    Documents & OfficeAuto-check: notes
  • Msgraph

    codemie-ai/codemie-code

    Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, Planner task…

    294 GitHub stars~4.1k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • aai-cli Microsoft 365

    aai-labs/agent-barn

    Guides work with Outlook, OneDrive, SharePoint, Teams, Excel, To Do and Planner through aai-cli's Microsoft Graph commands, starting from which service owns the data.

    109 GitHub stars~1.2k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Workiq

    microsoft/work-iq

    Official

    WorkIQ tools for Microsoft 365 workplace data and actions. An agent skill from microsoft/work-iq.

    1k GitHub stars~15k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Workiq Preview

    microsoft/work-iq

    Official

    WorkIQ tools for Microsoft 365 workplace data and actions. An agent skill from microsoft/work-iq.

    1k GitHub stars~3.3k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Hunt Ntlm Info

    sickn33/agentic-awesome-skills

    Hunt NTLM/Negotiate information disclosure on internet-reachable IIS/SharePoint/Exchange.

    47k GitHub starsUsed in 1 repo~4.7k tokens
    Documents & OfficeAuto-check passed

More from pnp/sharepoint-skills

All 51 skills in this repo
  • Scorecard Matrix

    pnp/sharepoint-skills

    Generates a polished, self-contained HTML heatmap scorecard — a weighted comparison matrix where entities (rows) are scored across dimensions (columns), with computed totals, rank badges, and a…

    131 GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed
  • Analyze Document Library

    pnp/sharepoint-skills

    Analyze the current SharePoint document library in read-only mode and produce a structured summary of files, folders, file types, recent activity, naming issues, and organization recommendations.

    131 GitHub stars~899 tokensUpdated 2 days ago
    Auto-check passed
  • Broken Link Auditor

    pnp/sharepoint-skills

    Audits SharePoint pages, news posts, and hyperlink fields for broken or risky links and saves a self-contained HTML link-health report to the site.

    131 GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check passed
  • Dossier

    pnp/sharepoint-skills

    Renders a polished, self-contained HTML briefing from any data source — SharePoint lists, uploaded documents, or a verbal description.

    131 GitHub stars~1.9k tokensUpdated 2 days ago
    Auto-check passed
  • Exec Report

    pnp/sharepoint-skills

    Generates a polished, self-contained HTML executive report or dashboard from any data source — SharePoint lists, CSV exports, or a user description.

    131 GitHub stars~2k tokensUpdated 2 days ago
    Auto-check passed
  • File Classifier

    pnp/sharepoint-skills

    Classifies files in a SharePoint document library by reading their content and matching them to known content types (Contracts, Invoices, Purchase Orders).

    131 GitHub stars~4.1k tokensUpdated 2 days ago
    Auto-check passed

Questions about Custom Image Tagger

What does Custom Image Tagger do?

Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update…. Custom Image Tagger is an agent skill from pnp/sharepoint-skills. Analyze selected construction images, create missing object metadata columns, and write concise visual metadata back to SharePoint columns using explicit image-analysis, list-schema, list-update, and list-configuration tools.

When should I use Custom Image Tagger?

Custom Image Tagger fits situations like: tasks that involve Cloud office suites.

How do I install Custom Image Tagger in Claude Code?

Run `npx skills add pnp/sharepoint-skills --skill custom-image-tagger -a claude-code`. Or copy the skill folder (Skills/custom-image-tagger/custom-image-tagger in pnp/sharepoint-skills) into .claude/skills/custom-image-tagger in your project. Claude Code loads it when a task matches its description.

How do I install Custom Image Tagger in Codex?

Run `npx skills add pnp/sharepoint-skills --skill custom-image-tagger -a codex`. Or copy the skill folder (Skills/custom-image-tagger/custom-image-tagger in pnp/sharepoint-skills) into .agents/skills/custom-image-tagger in your project. Codex loads it when a task matches its description.

Can I use Custom Image Tagger in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pnp/sharepoint-skills --skill custom-image-tagger -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/custom-image-tagger, .gemini/skills/custom-image-tagger, .github/skills/custom-image-tagger and .opencode/skills/custom-image-tagger in your project.

What does Custom Image Tagger need to run?

SKILL.md names no scripts, command-line tools or credentials: Custom Image Tagger is instructions for the agent only.

Does Custom Image Tagger access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Custom Image Tagger safe to install?

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. Review the folder before installing.

What licence does Custom Image Tagger use?

Custom Image Tagger is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Custom Image Tagger use?

About 1.2k tokens (SKILL.md is roughly 4.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Custom Image Tagger?

Skills that share tags, products or a category with Custom Image Tagger: Colleague Distillation (ZhixiangLuo/10xProductivity, 478 stars), Msgraph (codemie-ai/codemie-code, 294 stars), aai-cli Microsoft 365 (aai-labs/agent-barn, 109 stars) and Workiq (microsoft/work-iq, 1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Custom Image Tagger?

pnp (a GitHub organization) maintains it in pnp/sharepoint-skills, which has 131 GitHub stars. The repository holds 51 skills in this directory. The repository was last updated on October 6, 2026.

Source: pnp/sharepoint-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.