fix(skills): address coderabbitai + cubic-dev-ai review findings

- marketplace.json: update skill count 261 → 265
- 90_SYNTHESIS.md (both copies): add required ## Raw / ## Synthesis
  wrappers per module contract; add Aaker brand system section (4b)
  covering archetype, identity, associations, equity (Module 40 output)
- brand-discovery/SKILL.md: add terminal module handling for 90_SYNTHESIS
  (nextModule=null, completedModules includes 90); add path traversal
  validation rules for participant, moduleFile, outputPath in multi-founder
  mode
- competitive-platform-analysis/SKILL.md (both copies): fix malformed
  markdown emphasis (stray * after "substitutes:")
- competitive-report-structure/SKILL.md (both copies): clarify heatmap
  column for dimension 9 — two poles (Memorability + Hireability) must be
  represented as separate sub-columns, not averaged
- 40_personality-archetype.md (both copies): join split heading onto one line
- 60_narrative-story.md, 70_founder-tension.md (both copies): add trailing
  newline at EOF

Duplicate .agents/ ↔ skills/ copies are intentional (Codex mirror);
.agents/ strips `origin: community` per Codex allowlist.
This commit is contained in:
Eryk Orłowski 2026-06-10 17:33:49 +02:00
parent fe37e5426a
commit 2f17184cce
11 changed files with 119 additions and 39 deletions

View File

@ -111,13 +111,23 @@ Schema:
After writing, confirm: "Module X saved. State updated. Next: Y."
**Terminal module (90_SYNTHESIS.md):** when writing the final synthesis,
set `inProgressModule` to `"90_SYNTHESIS.md"` and `nextModule` to `null`
in `state.json`. After writing, set `completedModules` to include
`"90_SYNTHESIS.md"` and confirm: "Brandbook complete. All modules saved."
## Multi-founder mode
When more than one founder participates, write each founder's answers to
`founders/{participant}.md` instead of the main module files. After all
founders complete a module, run a reconciliation pass: summarise
convergences and divergences in the module file, flag "productive tensions"
for the group alignment workshop.
`founders/{participant}.md` instead of the main module files. Validate the
`participant` name before writing: accept only alphanumeric characters and
hyphens (e.g. `founder-a`, `anna`); reject names containing path separators
(`/`, `\`, `..`) or special characters. Validate `moduleFile` against the
enumerated module sequence (10 through 90 only). Validate `outputPath` to
ensure it is an absolute path within the project directory — reject relative
paths and paths that escape via `..` segments. After all founders complete a
module, run a reconciliation pass: summarise convergences and divergences in
the module file, flag "productive tensions" for the group alignment workshop.
## Anti-Patterns

View File

@ -21,8 +21,7 @@
### Three adjectives the founder uses most naturally to describe the brand's character
### One brand or public figure the founder admires but the brand should NOT become
(and specifically what to avoid)
### One brand or public figure the founder admires but the brand should NOT become (and specifically what to avoid)
### One brand or public figure whose personality register the brand aspires to

View File

@ -11,7 +11,17 @@
---
## 1. The Why (from Module 10)
## Raw
<!-- Module 90 consolidates outputs from Modules 1070; minimal new raw input is
collected here. Capture any final founder statements or corrections made
during the synthesis pass below. -->
---
## Synthesis
### 1. The Why (from Module 10)
> **Core belief:**
@ -21,7 +31,7 @@
---
## 2. Positioning (from Module 20)
### 2. Positioning (from Module 20)
> **Positioning statement:**
> For **[target client]** who **[situation]**, **[brand name]** is the
@ -32,7 +42,7 @@
---
## 3. Audience (from Module 30)
### 3. Audience (from Module 30)
> **Ideal Client Profile (one-paragraph portrait):**
@ -42,7 +52,7 @@
---
## 4. Kapferer Brand Identity Prism
### 4. Kapferer Brand Identity Prism
| Facet | Content |
|---|---|
@ -55,7 +65,25 @@
---
## 5. Voice & Tone summary (from Module 50)
### 4b. Aaker Brand System (from Module 40)
> **Primary archetype** (Mark & Pearson):
> **Secondary archetype** (if present):
> **Aaker brand identity** — four dimensions:
> - *Brand as product:*
> - *Brand as organisation:*
> - *Brand as person (personality):*
> - *Brand as symbol:*
> **Brand associations** (35 key associations the brand should own):
> **Brand equity signals** (what clients would lose if this brand disappeared):
---
### 5. Voice & Tone summary (from Module 50)
> **Voice statement (one paragraph):**
@ -66,7 +94,7 @@
---
## 6. Narrative assets (from Module 60)
### 6. Narrative assets (from Module 60)
> **Trueline:**
@ -74,7 +102,7 @@
---
## 7. Founder / organisation brand boundary (from Module 70)
### 7. Founder / organisation brand boundary (from Module 70)
> **What the founder brand owns:**
@ -82,7 +110,7 @@
---
## 8. Tensions resolved (record any module-to-module conflicts and how they were settled)
### 8. Tensions resolved (record any module-to-module conflicts and how they were settled)
| Tension | Module A | Module B | Resolution |
|---|---|---|---|
@ -90,13 +118,13 @@
---
## 9. Open questions deferred to next session
### 9. Open questions deferred to next session
<!-- Anything that couldn't be resolved with the current data. -->
---
## 10. Practical next steps
### 10. Practical next steps
<!-- 35 concrete actions the brand can take based on this brandbook. -->

View File

@ -6,6 +6,7 @@ description: >-
counts as a competitor, which tier they belong to, and which sources to mine.
First step in the three-skill competitive pipeline; precedes
benchmark-methodology.
origin: community
---
# Competitive Platform Analysis
@ -110,7 +111,7 @@ report:
that pressures at the edges.
- **Aspirational** — players the client is not competing with today but whose
brand or commercial maturity sets the bar to aim at.
- *(Watch also for substitutes:* no-code/AI tools, in-house teams, generalist
- *(Watch also for substitutes: no-code/AI tools, in-house teams, generalist
freelancers — note as a threat vector, not a profiled competitor unless
materially relevant.)*

View File

@ -6,6 +6,7 @@ description: >-
profiles, benchmarking matrix, white-space analysis, strategic recommendations,
and team alignment trigger questions. Final step in the three-skill competitive
pipeline.
origin: community
---
# Competitive Report Structure
@ -72,8 +73,10 @@ the detail.
### 4. Benchmarking matrix
The full **competitors × dimensions** table — the quantitative spine. Rows =
competitors (grouped by tier), columns = the nine dimensions. Include the
client's own honest self-assessment as a row for contrast. Use a **heatmap**
competitors (grouped by tier), columns = the nine benchmark dimensions (note:
dimension 9 — strategic tension — has two poles: Memorability and Hireability;
represent them as two separate sub-columns rather than averaging them). Include
the client's own honest self-assessment as a row for contrast. Use a **heatmap**
(color or symbol scale) so strength/weakness patterns are scannable. Do **not**
add a blended total column — report dimensions separately (per the bias
controls). Call out the columns where the client leads and where it trails.

View File

@ -11,7 +11,7 @@
{
"name": "ecc",
"source": "./",
"description": "Harness-native ECC operator layer - 64 agents, 262 skills, 84 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses",
"description": "Harness-native ECC operator layer - 64 agents, 269 skills, 84 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses",
"version": "2.0.0",
"author": {
"name": "Affaan Mustafa",

View File

@ -112,13 +112,23 @@ Schema:
After writing, confirm: "Module X saved. State updated. Next: Y."
**Terminal module (90_SYNTHESIS.md):** when writing the final synthesis,
set `inProgressModule` to `"90_SYNTHESIS.md"` and `nextModule` to `null`
in `state.json`. After writing, set `completedModules` to include
`"90_SYNTHESIS.md"` and confirm: "Brandbook complete. All modules saved."
## Multi-founder mode
When more than one founder participates, write each founder's answers to
`founders/{participant}.md` instead of the main module files. After all
founders complete a module, run a reconciliation pass: summarise
convergences and divergences in the module file, flag "productive tensions"
for the group alignment workshop.
`founders/{participant}.md` instead of the main module files. Validate the
`participant` name before writing: accept only alphanumeric characters and
hyphens (e.g. `founder-a`, `anna`); reject names containing path separators
(`/`, `\`, `..`) or special characters. Validate `moduleFile` against the
enumerated module sequence (10 through 90 only). Validate `outputPath` to
ensure it is an absolute path within the project directory — reject relative
paths and paths that escape via `..` segments. After all founders complete a
module, run a reconciliation pass: summarise convergences and divergences in
the module file, flag "productive tensions" for the group alignment workshop.
## Anti-Patterns

View File

@ -21,8 +21,7 @@
### Three adjectives the founder uses most naturally to describe the brand's character
### One brand or public figure the founder admires but the brand should NOT become
(and specifically what to avoid)
### One brand or public figure the founder admires but the brand should NOT become (and specifically what to avoid)
### One brand or public figure whose personality register the brand aspires to

View File

@ -11,7 +11,17 @@
---
## 1. The Why (from Module 10)
## Raw
<!-- Module 90 consolidates outputs from Modules 1070; minimal new raw input is
collected here. Capture any final founder statements or corrections made
during the synthesis pass below. -->
---
## Synthesis
### 1. The Why (from Module 10)
> **Core belief:**
@ -21,7 +31,7 @@
---
## 2. Positioning (from Module 20)
### 2. Positioning (from Module 20)
> **Positioning statement:**
> For **[target client]** who **[situation]**, **[brand name]** is the
@ -32,7 +42,7 @@
---
## 3. Audience (from Module 30)
### 3. Audience (from Module 30)
> **Ideal Client Profile (one-paragraph portrait):**
@ -42,7 +52,7 @@
---
## 4. Kapferer Brand Identity Prism
### 4. Kapferer Brand Identity Prism
| Facet | Content |
|---|---|
@ -55,7 +65,25 @@
---
## 5. Voice & Tone summary (from Module 50)
### 4b. Aaker Brand System (from Module 40)
> **Primary archetype** (Mark & Pearson):
> **Secondary archetype** (if present):
> **Aaker brand identity** — four dimensions:
> - *Brand as product:*
> - *Brand as organisation:*
> - *Brand as person (personality):*
> - *Brand as symbol:*
> **Brand associations** (35 key associations the brand should own):
> **Brand equity signals** (what clients would lose if this brand disappeared):
---
### 5. Voice & Tone summary (from Module 50)
> **Voice statement (one paragraph):**
@ -66,7 +94,7 @@
---
## 6. Narrative assets (from Module 60)
### 6. Narrative assets (from Module 60)
> **Trueline:**
@ -74,7 +102,7 @@
---
## 7. Founder / organisation brand boundary (from Module 70)
### 7. Founder / organisation brand boundary (from Module 70)
> **What the founder brand owns:**
@ -82,7 +110,7 @@
---
## 8. Tensions resolved (record any module-to-module conflicts and how they were settled)
### 8. Tensions resolved (record any module-to-module conflicts and how they were settled)
| Tension | Module A | Module B | Resolution |
|---|---|---|---|
@ -90,13 +118,13 @@
---
## 9. Open questions deferred to next session
### 9. Open questions deferred to next session
<!-- Anything that couldn't be resolved with the current data. -->
---
## 10. Practical next steps
### 10. Practical next steps
<!-- 35 concrete actions the brand can take based on this brandbook. -->

View File

@ -111,7 +111,7 @@ report:
that pressures at the edges.
- **Aspirational** — players the client is not competing with today but whose
brand or commercial maturity sets the bar to aim at.
- *(Watch also for substitutes:* no-code/AI tools, in-house teams, generalist
- *(Watch also for substitutes: no-code/AI tools, in-house teams, generalist
freelancers — note as a threat vector, not a profiled competitor unless
materially relevant.)*

View File

@ -73,8 +73,10 @@ the detail.
### 4. Benchmarking matrix
The full **competitors × dimensions** table — the quantitative spine. Rows =
competitors (grouped by tier), columns = the nine dimensions. Include the
client's own honest self-assessment as a row for contrast. Use a **heatmap**
competitors (grouped by tier), columns = the nine benchmark dimensions (note:
dimension 9 — strategic tension — has two poles: Memorability and Hireability;
represent them as two separate sub-columns rather than averaging them). Include
the client's own honest self-assessment as a row for contrast. Use a **heatmap**
(color or symbol scale) so strength/weakness patterns are scannable. Do **not**
add a blended total column — report dimensions separately (per the bias
controls). Call out the columns where the client leads and where it trails.