fix(ci): catalog sync, markdownlint, unicode safety, unsupported frontmatter key

catalog:sync: update skill count 261→265 in README.md, AGENTS.md,
docs/zh-CN/AGENTS.md, .claude-plugin/plugin.json

markdownlint:
- MD009: strip trailing spaces in 10_purpose-why, 20_positioning,
  40_personality-archetype, 50_voice-tone, 60_narrative-story, 90_SYNTHESIS
  (both skills/ and .agents/skills/ copies)
- MD037: wrap ___ placeholders in backticks in 70_founder-tension.md:39
- MD028: replace blank lines inside blockquotes with bare > in 90_SYNTHESIS.md

unicode-safety: replace U+2194 (↔) with ASCII <-> in 50_voice-tone.md and
competitive-report-structure/SKILL.md (both copies)

codex-validator: remove unsupported `origin: community` key from
brand-discovery, competitive-platform-analysis, competitive-report-structure,
benchmark-methodology SKILL.md files (both copies)
This commit is contained in:
Eryk Orłowski 2026-06-11 10:22:25 +02:00
parent ccce25fe2b
commit f810c19c13
26 changed files with 83 additions and 87 deletions

View File

@ -6,7 +6,6 @@ description: >-
personality, voice, narrative, and founder-brand tension across 8 modules personality, voice, narrative, and founder-brand tension across 8 modules
using laddering, 5 Whys, and projective techniques. Produces a resumable using laddering, 5 Whys, and projective techniques. Produces a resumable
session with disk-persisted state and a master brandbook (90_SYNTHESIS.md). session with disk-persisted state and a master brandbook (90_SYNTHESIS.md).
origin: community
--- ---
# Brand Discovery # Brand Discovery

View File

@ -1,7 +1,7 @@
# Module 50 — Voice & Tone # Module 50 — Voice & Tone
> **Frameworks:** Brand voice spectrum (formal ↔ casual, serious ↔ playful, > **Frameworks:** Brand voice spectrum (formal <-> casual, serious <-> playful,
> distant ↔ warm, conventional ↔ irreverent) · Content-type tone matrix > distant <-> warm, conventional <-> irreverent) · Content-type tone matrix
> >
> **Goal:** Codify the brand's verbal register precisely enough that two different > **Goal:** Codify the brand's verbal register precisely enough that two different
> writers produce copy that sounds like the same person. Voice is constant; > writers produce copy that sounds like the same person. Voice is constant;

View File

@ -36,7 +36,7 @@
[Founder IS the brand] ←————————→ [Organisation brand stands alone] [Founder IS the brand] ←————————→ [Organisation brand stands alone]
1 2 3 4 5 1 2 3 4 5
``` ```
Current position: ___ Target position (3-year): ___ Current position: `___` Target position (3-year): `___`
### What the founder brand should own (and keeps owning) ### What the founder brand should own (and keeps owning)

View File

@ -24,9 +24,9 @@
### 1. The Why (from Module 10) ### 1. The Why (from Module 10)
> **Core belief:** > **Core belief:**
>
> **Behavioural How (values in action):** > **Behavioural How (values in action):**
>
> **What we refuse to be:** > **What we refuse to be:**
--- ---
@ -37,7 +37,7 @@
> For **[target client]** who **[situation]**, **[brand name]** is the > For **[target client]** who **[situation]**, **[brand name]** is the
> **[category]** that **[unique value]**. Unlike **[alternatives]**, we > **[category]** that **[unique value]**. Unlike **[alternatives]**, we
> **[key differentiator]**. > **[key differentiator]**.
>
> **White-space the brand owns:** > **White-space the brand owns:**
--- ---
@ -45,9 +45,9 @@
### 3. Audience (from Module 30) ### 3. Audience (from Module 30)
> **Ideal Client Profile (one-paragraph portrait):** > **Ideal Client Profile (one-paragraph portrait):**
>
> **Niche the brand is building toward:** > **Niche the brand is building toward:**
>
> **Red-flag / disqualifier:** > **Red-flag / disqualifier:**
--- ---
@ -68,17 +68,17 @@
### 4b. Aaker Brand System (from Module 40) ### 4b. Aaker Brand System (from Module 40)
> **Primary archetype** (Mark & Pearson): > **Primary archetype** (Mark & Pearson):
>
> **Secondary archetype** (if present): > **Secondary archetype** (if present):
>
> **Aaker brand identity** — four dimensions: > **Aaker brand identity** — four dimensions:
> - *Brand as product:* > - *Brand as product:*
> - *Brand as organisation:* > - *Brand as organisation:*
> - *Brand as person (personality):* > - *Brand as person (personality):*
> - *Brand as symbol:* > - *Brand as symbol:*
>
> **Brand associations** (35 key associations the brand should own): > **Brand associations** (35 key associations the brand should own):
>
> **Brand equity signals** (what clients would lose if this brand disappeared): > **Brand equity signals** (what clients would lose if this brand disappeared):
--- ---
@ -86,7 +86,7 @@
### 5. Voice & Tone summary (from Module 50) ### 5. Voice & Tone summary (from Module 50)
> **Voice statement (one paragraph):** > **Voice statement (one paragraph):**
>
> **The three checks every draft must pass:** > **The three checks every draft must pass:**
> 1. > 1.
> 2. > 2.
@ -97,7 +97,7 @@
### 6. Narrative assets (from Module 60) ### 6. Narrative assets (from Module 60)
> **Trueline:** > **Trueline:**
>
> **Brand story arc (one paragraph, usable as an About page starting point):** > **Brand story arc (one paragraph, usable as an About page starting point):**
--- ---
@ -105,7 +105,7 @@
### 7. Founder / organisation brand boundary (from Module 70) ### 7. Founder / organisation brand boundary (from Module 70)
> **What the founder brand owns:** > **What the founder brand owns:**
>
> **What the organisation brand owns:** > **What the organisation brand owns:**
--- ---

View File

@ -6,7 +6,6 @@ description: >-
counts as a competitor, which tier they belong to, and which sources to mine. counts as a competitor, which tier they belong to, and which sources to mine.
First step in the three-skill competitive pipeline; precedes First step in the three-skill competitive pipeline; precedes
benchmark-methodology. benchmark-methodology.
origin: community
--- ---
# Competitive Platform Analysis # Competitive Platform Analysis

View File

@ -6,7 +6,6 @@ description: >-
profiles, benchmarking matrix, white-space analysis, strategic recommendations, profiles, benchmarking matrix, white-space analysis, strategic recommendations,
and team alignment trigger questions. Final step in the three-skill competitive and team alignment trigger questions. Final step in the three-skill competitive
pipeline. pipeline.
origin: community
--- ---
# Competitive Report Structure # Competitive Report Structure
@ -59,7 +58,7 @@ this and knows what to do. No methodology here.
### 2. Market landscape & category framing ### 2. Market landscape & category framing
Define the category and map it. Use a **multi-axis map** — at minimum a 2×2 Define the category and map it. Use a **multi-axis map** — at minimum a 2×2
(e.g., *brand-led ↔ capability-led* × *boutique ↔ enterprise-scale*), and (e.g., *brand-led <-> capability-led* × *boutique <-> enterprise-scale*), and
ideally the **client's tension plot** from `benchmark-methodology` as the ideally the **client's tension plot** from `benchmark-methodology` as the
headline map. Place every profiled competitor and the client. The map should headline map. Place every profiled competitor and the client. The map should
make the client's intended position visually obvious and show how crowded (or make the client's intended position visually obvious and show how crowded (or

View File

@ -1,7 +1,7 @@
{ {
"name": "ecc", "name": "ecc",
"version": "2.0.0", "version": "2.0.0",
"description": "Harness-native ECC plugin for engineering teams - 64 agents, 262 skills, 84 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses", "description": "Harness-native ECC plugin for engineering teams - 64 agents, 269 skills, 84 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses",
"author": { "author": {
"name": "Affaan Mustafa", "name": "Affaan Mustafa",
"url": "https://x.com/affaanmustafa" "url": "https://x.com/affaanmustafa"

View File

@ -1,6 +1,6 @@
# Everything Claude Code (ECC) — Agent Instructions # Everything Claude Code (ECC) — Agent Instructions
This is a **production-ready AI coding plugin** providing 64 specialized agents, 262 skills, 84 commands, and automated hook workflows for software development. This is a **production-ready AI coding plugin** providing 64 specialized agents, 269 skills, 84 commands, and automated hook workflows for software development.
**Version:** 2.0.0 **Version:** 2.0.0
@ -150,7 +150,7 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat
``` ```
agents/ — 64 specialized subagents agents/ — 64 specialized subagents
skills/ — 262 workflow skills and domain knowledge skills/ — 269 workflow skills and domain knowledge
commands/ — 84 slash commands commands/ — 84 slash commands
hooks/ — Trigger-based automations hooks/ — Trigger-based automations
rules/ — Always-follow guidelines (common + per-language) rules/ — Always-follow guidelines (common + per-language)

View File

@ -154,7 +154,7 @@ Stable graduation of the 2.0 line: 265 skills, the control-pane substrate (sessi
### v2.0.0-rc.1 — Surface Refresh, Operator Workflows, and ECC 2.0 Alpha (Apr 2026) ### v2.0.0-rc.1 — Surface Refresh, Operator Workflows, and ECC 2.0 Alpha (Apr 2026)
- **Dashboard GUI** — New Tkinter-based desktop application (`ecc_dashboard.py` or `npm run dashboard`) with dark/light theme toggle, font customization, and project logo in header and taskbar. - **Dashboard GUI** — New Tkinter-based desktop application (`ecc_dashboard.py` or `npm run dashboard`) with dark/light theme toggle, font customization, and project logo in header and taskbar.
- **Public surface synced to the live repo** — metadata, catalog counts, plugin manifests, and install-facing docs now match the actual OSS surface: 64 agents, 261 skills, and 84 legacy command shims. - **Public surface synced to the live repo** — metadata, catalog counts, plugin manifests, and install-facing docs now match the actual OSS surface: 64 agents, 265 skills, and 84 legacy command shims.
- **Operator and outbound workflow expansion**`brand-voice`, `social-graph-ranker`, `connections-optimizer`, `customer-billing-ops`, `ecc-tools-cost-audit`, `google-workspace-ops`, `project-flow-ops`, and `workspace-surface-audit` round out the operator lane. - **Operator and outbound workflow expansion**`brand-voice`, `social-graph-ranker`, `connections-optimizer`, `customer-billing-ops`, `ecc-tools-cost-audit`, `google-workspace-ops`, `project-flow-ops`, and `workspace-surface-audit` round out the operator lane.
- **Media and launch tooling**`manim-video`, `remotion-video-creation`, and upgraded social publishing surfaces make technical explainers and launch content part of the same system. - **Media and launch tooling**`manim-video`, `remotion-video-creation`, and upgraded social publishing surfaces make technical explainers and launch content part of the same system.
- **Framework and product surface growth**`nestjs-patterns`, richer Codex/OpenCode install surfaces, and expanded cross-harness packaging keep the repo usable beyond Claude Code alone. - **Framework and product surface growth**`nestjs-patterns`, richer Codex/OpenCode install surfaces, and expanded cross-harness packaging keep the repo usable beyond Claude Code alone.

View File

@ -1,6 +1,6 @@
# Everything Claude Code (ECC) — 智能体指令 # Everything Claude Code (ECC) — 智能体指令
这是一个**生产就绪的 AI 编码插件**,提供 64 个专业代理、262 项技能、84 条命令以及自动化钩子工作流,用于软件开发。 这是一个**生产就绪的 AI 编码插件**,提供 64 个专业代理、269 项技能、84 条命令以及自动化钩子工作流,用于软件开发。
**版本:** 2.0.0 **版本:** 2.0.0
@ -147,7 +147,7 @@
``` ```
agents/ — 64 个专业子代理 agents/ — 64 个专业子代理
skills/ — 262 个工作流技能和领域知识 skills/ — 269 个工作流技能和领域知识
commands/ — 84 个斜杠命令 commands/ — 84 个斜杠命令
hooks/ — 基于触发的自动化 hooks/ — 基于触发的自动化
rules/ — 始终遵循的指导方针(通用 + 每种语言) rules/ — 始终遵循的指导方针(通用 + 每种语言)

3
package-lock.json generated
View File

@ -421,6 +421,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@ -852,6 +853,7 @@
"integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.1", "@eslint-community/regexpp": "^4.12.1",
@ -2433,6 +2435,7 @@
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },

View File

@ -6,7 +6,6 @@ description: >-
visual craft, offer packaging, evidence, enterprise-readiness, thought visual craft, offer packaging, evidence, enterprise-readiness, thought
leadership, pricing, client's strategic tension) with explicit 15 rubrics leadership, pricing, client's strategic tension) with explicit 15 rubrics
and a tension-plot. Precedes competitive-report-structure. and a tension-plot. Precedes competitive-report-structure.
origin: community
--- ---
# Benchmark Methodology # Benchmark Methodology

View File

@ -6,7 +6,6 @@ description: >-
personality, voice, narrative, and founder-brand tension across 8 modules personality, voice, narrative, and founder-brand tension across 8 modules
using laddering, 5 Whys, and projective techniques. Produces a resumable using laddering, 5 Whys, and projective techniques. Produces a resumable
session with disk-persisted state and a master brandbook (90_SYNTHESIS.md). session with disk-persisted state and a master brandbook (90_SYNTHESIS.md).
origin: community
--- ---
# Brand Discovery # Brand Discovery

View File

@ -1,7 +1,7 @@
# Module 50 — Voice & Tone # Module 50 — Voice & Tone
> **Frameworks:** Brand voice spectrum (formal ↔ casual, serious ↔ playful, > **Frameworks:** Brand voice spectrum (formal <-> casual, serious <-> playful,
> distant ↔ warm, conventional ↔ irreverent) · Content-type tone matrix > distant <-> warm, conventional <-> irreverent) · Content-type tone matrix
> >
> **Goal:** Codify the brand's verbal register precisely enough that two different > **Goal:** Codify the brand's verbal register precisely enough that two different
> writers produce copy that sounds like the same person. Voice is constant; > writers produce copy that sounds like the same person. Voice is constant;

View File

@ -36,7 +36,7 @@
[Founder IS the brand] ←————————→ [Organisation brand stands alone] [Founder IS the brand] ←————————→ [Organisation brand stands alone]
1 2 3 4 5 1 2 3 4 5
``` ```
Current position: ___ Target position (3-year): ___ Current position: `___` Target position (3-year): `___`
### What the founder brand should own (and keeps owning) ### What the founder brand should own (and keeps owning)

View File

@ -24,9 +24,9 @@
### 1. The Why (from Module 10) ### 1. The Why (from Module 10)
> **Core belief:** > **Core belief:**
>
> **Behavioural How (values in action):** > **Behavioural How (values in action):**
>
> **What we refuse to be:** > **What we refuse to be:**
--- ---
@ -37,7 +37,7 @@
> For **[target client]** who **[situation]**, **[brand name]** is the > For **[target client]** who **[situation]**, **[brand name]** is the
> **[category]** that **[unique value]**. Unlike **[alternatives]**, we > **[category]** that **[unique value]**. Unlike **[alternatives]**, we
> **[key differentiator]**. > **[key differentiator]**.
>
> **White-space the brand owns:** > **White-space the brand owns:**
--- ---
@ -45,9 +45,9 @@
### 3. Audience (from Module 30) ### 3. Audience (from Module 30)
> **Ideal Client Profile (one-paragraph portrait):** > **Ideal Client Profile (one-paragraph portrait):**
>
> **Niche the brand is building toward:** > **Niche the brand is building toward:**
>
> **Red-flag / disqualifier:** > **Red-flag / disqualifier:**
--- ---
@ -68,17 +68,17 @@
### 4b. Aaker Brand System (from Module 40) ### 4b. Aaker Brand System (from Module 40)
> **Primary archetype** (Mark & Pearson): > **Primary archetype** (Mark & Pearson):
>
> **Secondary archetype** (if present): > **Secondary archetype** (if present):
>
> **Aaker brand identity** — four dimensions: > **Aaker brand identity** — four dimensions:
> - *Brand as product:* > - *Brand as product:*
> - *Brand as organisation:* > - *Brand as organisation:*
> - *Brand as person (personality):* > - *Brand as person (personality):*
> - *Brand as symbol:* > - *Brand as symbol:*
>
> **Brand associations** (35 key associations the brand should own): > **Brand associations** (35 key associations the brand should own):
>
> **Brand equity signals** (what clients would lose if this brand disappeared): > **Brand equity signals** (what clients would lose if this brand disappeared):
--- ---
@ -86,7 +86,7 @@
### 5. Voice & Tone summary (from Module 50) ### 5. Voice & Tone summary (from Module 50)
> **Voice statement (one paragraph):** > **Voice statement (one paragraph):**
>
> **The three checks every draft must pass:** > **The three checks every draft must pass:**
> 1. > 1.
> 2. > 2.
@ -97,7 +97,7 @@
### 6. Narrative assets (from Module 60) ### 6. Narrative assets (from Module 60)
> **Trueline:** > **Trueline:**
>
> **Brand story arc (one paragraph, usable as an About page starting point):** > **Brand story arc (one paragraph, usable as an About page starting point):**
--- ---
@ -105,7 +105,7 @@
### 7. Founder / organisation brand boundary (from Module 70) ### 7. Founder / organisation brand boundary (from Module 70)
> **What the founder brand owns:** > **What the founder brand owns:**
>
> **What the organisation brand owns:** > **What the organisation brand owns:**
--- ---

View File

@ -6,7 +6,6 @@ description: >-
counts as a competitor, which tier they belong to, and which sources to mine. counts as a competitor, which tier they belong to, and which sources to mine.
First step in the three-skill competitive pipeline; precedes First step in the three-skill competitive pipeline; precedes
benchmark-methodology. benchmark-methodology.
origin: community
--- ---
# Competitive Platform Analysis # Competitive Platform Analysis

View File

@ -6,7 +6,6 @@ description: >-
profiles, benchmarking matrix, white-space analysis, strategic recommendations, profiles, benchmarking matrix, white-space analysis, strategic recommendations,
and team alignment trigger questions. Final step in the three-skill competitive and team alignment trigger questions. Final step in the three-skill competitive
pipeline. pipeline.
origin: community
--- ---
# Competitive Report Structure # Competitive Report Structure
@ -59,7 +58,7 @@ this and knows what to do. No methodology here.
### 2. Market landscape & category framing ### 2. Market landscape & category framing
Define the category and map it. Use a **multi-axis map** — at minimum a 2×2 Define the category and map it. Use a **multi-axis map** — at minimum a 2×2
(e.g., *brand-led ↔ capability-led* × *boutique ↔ enterprise-scale*), and (e.g., *brand-led <-> capability-led* × *boutique <-> enterprise-scale*), and
ideally the **client's tension plot** from `benchmark-methodology` as the ideally the **client's tension plot** from `benchmark-methodology` as the
headline map. Place every profiled competitor and the client. The map should headline map. Place every profiled competitor and the client. The map should
make the client's intended position visually obvious and show how crowded (or make the client's intended position visually obvious and show how crowded (or