# Match Assets

> Match brand assets to calendar posts and assign creative modes. Use when: after calendar parsing or asset re-matching.

- **Type:** Skill
- **Install:** `agentstack add skill-indranilbanerjee-socialforge-match-assets`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [indranilbanerjee](https://agentstack.voostack.com/s/indranilbanerjee)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [indranilbanerjee](https://github.com/indranilbanerjee)
- **Source:** https://github.com/indranilbanerjee/socialforge/tree/main/skills/match-assets
- **Website:** https://indranil.in

## Install

```sh
agentstack add skill-indranilbanerjee-socialforge-match-assets
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# /socialforge:match-assets — Asset Matcher

Match brand assets to parsed calendar posts using the multi-factor scoring algorithm. Assigns one of 4 creative modes per post.

## Context efficiency

Asset-heavy skill. **Grep before Read** the asset catalog (`${CLAUDE_PLUGIN_DATA}//assets/index.json`) — never list the asset directory. Reference generated images / videos by path, not by loading metadata. Brand profile loads once per session.

## Prerequisites
- Calendar parsed (calendar-data.json exists)
- Asset index built (asset-index.json exists)

If either is missing, prompt: "Run `/socialforge:parse-calendar` first, then `/socialforge:index-assets`."

## The Matching Algorithm

For each post, calculate a multi-factor score against every indexed asset:

| Factor | Weight | What It Measures |
|--------|--------|------------------|
| Tag Overlap | 30% | Post keywords vs asset tags |
| Suitability Match | 25% | Asset's "suitable_for" vs post context |
| Content Bucket Match | 20% | Does asset suit this content bucket? |
| Crop Feasibility | 15% | Can asset be cropped to all required platform ratios? |
| Freshness Penalty | 10% | Penalize assets used recently this month |

**Freshness penalty:** 0 uses = no penalty | 1 use = score x 0.85 | 2 uses = score x 0.60 | 3+ uses = score x 0.30

## Creative Mode Assignment

| Score Range | Recommended Mode |
|-------------|-----------------|
| > 0.8 | ANCHOR_COMPOSE or ENHANCE_EXTEND |
| 0.5 - 0.8 | ENHANCE_EXTEND or STYLE_REFERENCED |
| 0.3 - 0.5 | STYLE_REFERENCED |
| < 0.3 | PURE_CREATIVE |

Also selects 2-5 style reference images per post (always fed to AI generation alongside prompts).

## Process

1. Load calendar-data.json and asset-index.json
2. For each post: extract keywords → score all assets → rank → assign mode
3. Select style references per post
4. Generate coverage report

## Coverage Report

```
Asset Matching Complete: 28 posts
  ANCHOR_COMPOSE: 8 posts (direct brand asset matches)
  ENHANCE_EXTEND: 5 posts (asset needs enhancement)
  STYLE_REFERENCED: 9 posts (AI gen guided by brand DNA)
  PURE_CREATIVE: 4 posts (full AI generation)
  CAROUSEL_TEMPLATE: 2 posts (HTML template rendering)

  Asset gaps: 3 posts flagged (should have brand assets but none found)
    - P07: Founder post but no founder photos indexed
    - P14: Product demo but no product screenshots available
    - P22: Office culture post but no office photos

  Top used assets: asset_012 (3 posts), asset_005 (2 posts)
```

5. Present for user confirmation — user can override any match
6. Save to `output/{brand}/{YYYY-MM}/asset-matches.json`

## User Override

For any post, user can:
- Accept the recommendation
- Select a different asset: "Use asset_015 for P07"
- Change creative mode: "Make P14 PURE_CREATIVE instead"
- Upload a new asset on the spot
- Skip: "I'll handle P22 manually"

## Timeout & Fallback
- Per-post matching: 5-second timeout. If an asset index is very large (500+ images), process in batches.
- Show progress: `[12/28] Matching Post P12 — best match: asset_023 (score: 0.74, STYLE_REFERENCED)`

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [indranilbanerjee](https://github.com/indranilbanerjee)
- **Source:** [indranilbanerjee/socialforge](https://github.com/indranilbanerjee/socialforge)
- **License:** MIT
- **Homepage:** https://indranil.in

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-indranilbanerjee-socialforge-match-assets
- Seller: https://agentstack.voostack.com/s/indranilbanerjee
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
