agentsclimarketplace

Kelly brand

Skill mr-kelly/skills/skills/kelly-brand

Agent Skills by mr-kelly

Install
npx -y skills add mr-kelly/skills --skill kelly-brand

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Brand-narrative single source of truth (TALE: Trace/Architect/Land/Evaluate) with a local App-in-Skill workbench. The agent drafts positioning, the message house of value pillars, the story bank, evidence-backed proof points, and vocabulary/tone guardrails; the human curates which drafts become the CANONICAL narrative; a drift monitor flags off-brand usage across channels. Use when the user invokes $kelly-brand or /kelly-brand, mentions brand narrative, brand messaging, positioning, message house, value pillars, story bank, proof points, tone/vocabulary guardrails, narrative quality (NQS), brand drift, or wants a single source of truth for what the brand says.

SKILL.md

13.0 KB, as published. Nobody here has run it

Kelly Brand

Overview

Use this skill as the operator for a brand's narrative single source of truth. It keeps a file-backed App-in-Skill workbench over the whole message house — positioning, value pillars, the story bank, evidence-backed proof points, and vocabulary/tone guardrails — plus a drift monitor that flags off-brand usage across channels. The agent drafts; the human curates which drafts are adopted as the canonical narrative; the skill records those adoptions and can export the canonical narrative for downstream use.

Everything is organized by Aaron's TALE discipline — Trace → Architect → Land → Evaluate — and every narrative asset carries the TALE phase and the sub_skill that produced it.

Default interaction mode: App UI. Unless the user explicitly asks for chat-only handling, check onboarding/config, refresh or regenerate the local brand snapshot, start/reuse the local app with app/start.sh, and give the actual local URL. Use chat-only mode only when the user says "纯聊天", "chat only", "不要打开 UI", or similar; in that mode present numbered assets (#1, #2) and take verdicts in the conversation.

Design philosophy follows the App-in-Skill specification paper: https://mr-kelly.github.io/research/app-in-skill-specification-for-pairing-agent-skills-with-a-local-companion-ui.pdf. The agent owns drafting and any external reads/writes; the app reads and writes local files only; the file handoff is the contract; the human's clicks are reserved for judgment — chiefly adopting a draft as canonical.

App UI Screenshots

<table> <tr> <td width="50%"><img src="assets/screenshots/overview.webp" alt="Kelly Brand message house"></td> <td width="50%"><img src="assets/screenshots/drift.webp" alt="Kelly Brand drift alerts"></td> </tr> <tr> <td><strong>Overview</strong><br>The message house — positioning, value pillars, overall NQS, and the drift-alert count.</td> <td><strong>Drift</strong><br>Cross-channel off-brand alerts — offending usage versus the canonical guardrail.</td> </tr> <tr> <td width="50%"><img src="assets/screenshots/narrative.webp" alt="Kelly Brand narrative"></td> <td width="50%"><img src="assets/screenshots/stories.webp" alt="Kelly Brand story bank"></td> </tr> <tr> <td><strong>Narrative</strong><br>Message pillars and vocabulary guardrails, canonical versus draft.</td> <td><strong>Story bank</strong><br>Customer stories and evidence-backed proof points.</td> </tr> </table>

Boundary

  • The skill may read sources the user provides (positioning inputs, existing site/deck copy, channel exports), draft narrative assets, score them, validate schemas, and write local handoff files.
  • The app reads and writes local files only. It must never publish copy, call channel APIs, or change any remote system.
  • Adopting an asset to the canonical narrative, exporting the narrative, and resolving a drift alert are approval-required and skill-executed after the human's verdict. scripts/execute_decisions.ts only records operations in execution_report.json; it performs no publishing itself.
  • Treat unverified claims, regulated claims, and legal/compliance wording as approval-required. A proof point with no named source must be blocked, not shipped.

The TALE Framework

The 4 phases are both an item facet (phase) and the shape of the work. The 16 sub-skills below are the capability taxonomy — each drafted asset names the sub-skill that produced it in sub_skill.

Trace — map the ground truth

  • narrative-baseline-mapper — capture the brand's current story as it actually reads today (origin story, status quo).
  • category-narrative-mapper — map how the category talks so the brand can stand apart from it.
  • audience-belief-mapper — surface what the audience already believes, needs, and objects to.
  • positioning-truth-tracer — trace the defensible truths the positioning can stand on.

Architect — design the message system

  • strategic-narrative-designer — write the core positioning statement (the roof of the house).
  • message-system-architect — build the value pillars that hold the positioning up.
  • brand-language-codifier — codify the vocabulary (say-this/not-that) and guardrails (banned/regulated language).
  • story-bank-builder — assemble the story bank of reusable customer and brand stories.

Land — make it usable across channels

  • narrative-cascade-planner — plan how the narrative cascades to each channel.
  • pitch-narrative-builder — shape the narrative into a pitch.
  • narrative-enablement-kit — package the narrative so teams can actually use it.
  • proof-point-packager — package proof points with their evidence (a named source and stat).

Evaluate — test, monitor, gate

  • message-test-designer — design tests for whether messages land.
  • narrative-resonance-monitor — monitor how the narrative resonates.
  • narrative-drift-monitor — flag off-brand / misaligned usage across channels (the Drift view).
  • narrative-quality-auditor ⛩ — the gate: score narrative quality (NQS 0–100) via the TALE framework and output SHIP / FIX / BLOCK. This gate is prominent on the overview and on every asset.

Narrative Quality Score (NQS) gate

The narrative-quality-auditor ⛩ scores each asset and the narrative as a whole:

  • SHIP (score ≥ 80) — ready to adopt as canonical.
  • FIX (55–79) — usable but flagged for a concrete revision.
  • BLOCK (< 55, or a proof point missing its source) — must not be published or adopted until fixed.

The overview shows the overall NQS with its gate, and each asset card shows its own NQS chip. A BLOCK verdict from the auditor should be mirrored by a blocked status on the item until resolved.

First Run And Onboarding

On invocation, check app/.data/onboarding.json and private config readiness. If onboarding is absent/incomplete, guide setup before doing real narrative work.

Private config priority:

  1. KELLY_BRAND_CONFIG=/absolute/path/to/config.json
  2. skills/kelly-brand/config.local.json
  3. ~/.config/kelly-brand/config.json
  4. skills/kelly-brand/config.example.json as template only

Env priority:

  1. Existing environment variables
  2. KELLY_BRAND_ENV_FILE=/absolute/path/to/.env
  3. Repository root .env
  4. skills/kelly-brand/.env.local
  5. ~/.config/kelly-brand/.env

Ask for non-secret setup details only: brand profile (name, category, audience, mission), the positioning inputs (for whom / who need / our brand is / that / unlike / because), channels monitored for drift and how each is reached, tone/style and reading level, official URLs, and the risk policy (banned phrases, regulated claims). Never ask the user to paste secrets into chat; channel source URLs/tokens belong only in local env files, referenced by source_url_env/token_env.

When setup is complete and the user confirms, write app/.data/onboarding.json:

{
  "completed": true,
  "completed_at": "ISO timestamp",
  "config_version": "1"
}

Local App

Start the workbench with:

skills/kelly-brand/app/start.sh

The app uses local HTTP on 127.0.0.1, preferring port 3230 through 3999, or KELLY_BRAND_UI_PORT when set. The launcher reuses a running instance only when /api/state proves it is the same app (app: "kelly-brand").

Required app views (hash routes):

  • #/overviewthe message house. The canonical/draft positioning statement at the top, the value pillars, the overall NQS with its gate, canonical vs needs-review counts, and the open drift-alert count.
  • #/narrative — message pillars plus vocabulary/guardrails, canonical vs draft, each editable with its NQS and TALE phase. Adopt / Request changes / Block per asset.
  • #/stories — the story bank and the proof points with their evidence (source + stat). A proof point missing evidence is blocked.
  • #/drift — off-brand/misalignment alerts the drift monitor flagged, each showing the offending usage vs the canonical guardrail, with Approve fix / Dismiss.
  • #/settings — sanitized config summary: brand profile, tone/reading level, banned/regulated language, official URLs, monitored channels with source-readiness booleans, data provider, and onboarding state. Never expose secret values.

The left sidebar keeps the fixed workflow filters (All, Needs Review, Canonical (= approved), Done, Blocked) as primary nav alongside the views. "Canonical" is the UI label for the approved state.

Demo mode:

  • ?demo=1 opens a deterministic mock brand (invented "Fernpath") for documentation and screenshots.
  • ?demo=overview, ?demo=narrative, ?demo=stories, ?demo=drift, and ?demo=settings select named scenes.
  • lang=en or lang=zh forces UI chrome language for screenshots.
  • Demo API responses never read or write files under app/.data/ or any private config.

UI language: support English and Chinese chrome with Auto default. Keep the brand's own narrative content (positioning, pillars, stories) in its original language.

File Contract

Read references/brand-schema.md before editing the app, scripts, or any generated brand JSON.

Primary local files:

  • app/.data/brand_snapshot.json: normalized narrative snapshot (positioning, items, drift alerts, metrics) generated by the skill/scripts.
  • app/.data/decisions.json: user verdicts and review notes keyed by item_id or alert_id, written by the app.
  • app/.data/agent_tasks.json: queued agent work — assets in changes_requested with the user's comment. The skill polls this to pick up revisions.
  • app/.data/execution_report.json: latest operations written by scripts/execute_decisions.ts.
  • app/.data/onboarding.json: onboarding completion marker.
  • app/.data/agent.lock: temporary lock while the skill is generating or executing. The app rejects decision writes while it exists.
  • config.local.json: private brand configuration, ignored by git.

Use scripts/validate_ui_schema.ts before relying on a snapshot in the UI. The app shows an empty setup state when no snapshot exists.

Normal Workflow

  1. Detect mode. Default to App UI.
  2. Load private config through the config helpers. If only config.example.json exists, enter onboarding.
  3. When the user feeds material (positioning inputs, existing copy, channel exports): acquire app/.data/agent.lock, update brand_snapshot.json — draft/upsert narrative assets by stable item_id across the six types, tag each with its TALE phase and sub_skill, run the narrative-quality-auditor to set each nqs and the overall NQS, run the narrative-drift-monitor over monitored channels to (re)populate drift_alerts, recompute metrics — validate with scripts/validate_ui_schema.ts, then release the lock.
  4. Start/reuse the UI and report the URL so the user can review the message house, the story bank, and the drift alerts.
  5. Poll app/.data/agent_tasks.json for changes_requested items. Re-draft each per the user's comment, re-score it, set it back to needs_review, and clear the task.
  6. On "adopt" / "promote approved narrative": re-read decisions.json, re-check the lock, and run scripts/execute_decisions.ts --apply to record promote_to_canonical (registry narrative) and resolve_drift operations in execution_report.json. Then, only for approved assets, update the canonical narrative and — if asked — export_narrative to a markdown file. Mark each done in the snapshot afterwards.
  7. Never adopt or export an asset without an explicit approve verdict. Never let a BLOCK/blocked proof point (no named source) reach any channel.

Safety Defaults

  • Treat unverified claims, regulated claims (organic, #1, guaranteed, certified, carbon-neutral), and legal/compliance wording as approval-required. Every public number must cite a named source.
  • A proof point without evidence is blocked by the NQS gate; do not adopt or publish it.
  • Store only the narrative content needed for review; keep raw channel exports out of the snapshot.
  • Redact tokens and credential-like strings from logs, reports, and UI state; expose only boolean source-readiness for configured env vars.
  • Keep stable ids (item_id, alert_id) so repeated updates and executions are idempotent.
  • If decisions and the snapshot disagree (missing item, stale ref), stop and regenerate rather than guessing.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.