made.json Publisher
Use this skill when a user asks to publish, update, maintain, or validate a
made.json feed, or when a project change ships a creator-made artifact that
should appear in the feed, including apps, Claude/Codex skills, CLIs, MCP
servers, prompts, workflows, agents, extensions, templates, or other useful
software.
Workflow
Find the feed file.
- Prefer
./made.json.
- Also check public output paths such as
public/made.json,
static/made.json, or site/made.json.
- If no feed exists, create
made.json with version: "1.0" and items: [].
- Use the resolved feed path as
<feed-path> in every validation and CLI
command below.
Identify the item entry.
- Required:
name, url.
- Prefer a stable lowercase
id.
- Include
kind when it is clear: app, tool, skill, prompt,
workflow, agent, template, mcp-server, cli, library, or another
useful hint.
- Include
description, tags, targets, source, prompt_log,
replaces, vibe_coded, and forkable when the project has evidence for
them.
- Treat
vibe_coded, forkable, source, prompt_log, and replaces as
creator-declared metadata, not endorsements.
- For skills, CLIs, MCP servers, prompts, workflows, templates, and other
installable artifacts, add or update the entry only when there is clear
evidence of creator/workspace ownership, canonical URL or source, intended
install/use target, and current status.
- Do not add downloaded marketplace/plugin-cache skills, vendored examples,
copied third-party tools, or unclear private automation directly to the
feed. Report a confirmation question instead.
Update timestamps.
- Set feed-level
updated when the file changes.
- Set item-level
updated when adding or materially changing an item.
- Use ISO 8601 date-time strings.
Validate.
- Run
npx @made-json/cli validate <feed-path> when available.
- If working inside the main
made-json repo, run node appfeed/bin/appfeed.js validate <feed-path>.
- Fix schema errors before finishing.
Report what changed.
- Mention the item id/name added or updated.
- Mention validation result.
- If CORS/deployment headers are relevant, remind the user to serve
Access-Control-Allow-Origin: *.
CLI Shortcut
When the appfeed CLI is available, prefer:
appfeed add <feed-path> \
--name "Item Name" \
--kind tool \
--url "https://example.com/item" \
--description "One sentence." \
--tags "utility,ai" \
--target "web|https://example.com/item|Open"
Use --replace when updating an existing entry with the same id or url.
1---2name: made-json-publisher3description: Use when maintaining a made.json feed for a project or creator: add newly shipped items, update changed metadata, preserve creator-declared claims, and validate the feed.4---56# made.json Publisher78Use this skill when a user asks to publish, update, maintain, or validate a9`made.json` feed, or when a project change ships a creator-made artifact that10should appear in the feed, including apps, Claude/Codex skills, CLIs, MCP11servers, prompts, workflows, agents, extensions, templates, or other useful12software.1314## Workflow15161. Find the feed file.17 - Prefer `./made.json`.18 - Also check public output paths such as `public/made.json`,19 `static/made.json`, or `site/made.json`.20 - If no feed exists, create `made.json` with `version: "1.0"` and `items: []`.21 - Use the resolved feed path as `<feed-path>` in every validation and CLI22 command below.23242. Identify the item entry.25 - Required: `name`, `url`.26 - Prefer a stable lowercase `id`.27 - Include `kind` when it is clear: `app`, `tool`, `skill`, `prompt`,28 `workflow`, `agent`, `template`, `mcp-server`, `cli`, `library`, or another29 useful hint.30 - Include `description`, `tags`, `targets`, `source`, `prompt_log`,31 `replaces`, `vibe_coded`, and `forkable` when the project has evidence for32 them.33 - Treat `vibe_coded`, `forkable`, `source`, `prompt_log`, and `replaces` as34 creator-declared metadata, not endorsements.35 - For skills, CLIs, MCP servers, prompts, workflows, templates, and other36 installable artifacts, add or update the entry only when there is clear37 evidence of creator/workspace ownership, canonical URL or source, intended38 install/use target, and current status.39 - Do not add downloaded marketplace/plugin-cache skills, vendored examples,40 copied third-party tools, or unclear private automation directly to the41 feed. Report a confirmation question instead.42433. Update timestamps.44 - Set feed-level `updated` when the file changes.45 - Set item-level `updated` when adding or materially changing an item.46 - Use ISO 8601 date-time strings.47484. Validate.49 - Run `npx @made-json/cli validate <feed-path>` when available.50 - If working inside the main `made-json` repo, run `node appfeed/bin/appfeed.js51 validate <feed-path>`.52 - Fix schema errors before finishing.53545. Report what changed.55 - Mention the item id/name added or updated.56 - Mention validation result.57 - If CORS/deployment headers are relevant, remind the user to serve58 `Access-Control-Allow-Origin: *`.5960## CLI Shortcut6162When the `appfeed` CLI is available, prefer:6364```bash65appfeed add <feed-path> \66 --name "Item Name" \67 --kind tool \68 --url "https://example.com/item" \69 --description "One sentence." \70 --tags "utility,ai" \71 --target "web|https://example.com/item|Open"72```7374Use `--replace` when updating an existing entry with the same `id` or `url`.