CtrlK
BlogDocsLog inGet started
Tessl Logo

story-bank-builder

Use when the user asks to "build a story bank", "collect our origin and customer stories", or "assemble reusable proof stories for the message"; assembles reusable narrative units — origin, founder, customer, transformation, and proof stories — each tagged to a claims-ledger ID and a message-house pillar, with every proof labeled Measured / User-provided / [needs source]. Not for authoring the message house or pillars — use message-system-architect; not for brand voice or naming rules — use brand-language-codifier; not for finished long-form prose — use content-writer; not for adjudicating whether a proof is true — use offer-claims-registry. 品牌故事库/起源客户转化/证据故事单元

64

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Fix and improve this skill with Tessl

tessl review fix ./narrative/architect/story-bank-builder/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, actionable instruction skill with a clear sequenced workflow and strong cross-skill navigation. The main weakness is verbosity from repeating the propose-to-registry-events guardrail verbatim across several sections rather than stating it once.

Suggestions

State the 'unbacked proof / canon element → authorized operation: propose to registry-events.py' rule once in the Skill Contract and reference it from Instructions and Save Results instead of repeating the full clause each time, to reclaim several hundred tokens.

Add a short validate→fix→retry checkpoint after the proof-gap flagging step (e.g., 're-tag or drop until every pillar has a Measured or ledger-approved proof, else surface as an E-dimension risk') to lift workflow_clarity.

Consolidate the duplicated scope-guard exclusions (frontmatter description vs. body Scope guard vs. Skill Contract Reads) into one canonical list to reduce redundancy.

DimensionReasoningScore

Conciseness

Mostly efficient and assumes Claude's competence (no basic-concept padding), but the boilerplate clause 'via an authorized `operation: propose` request to `registry-events.py`' recurs ~6 times across the intro, Skill Contract, Instructions, and Save Results, and could be tightened via a single stated rule.

3 / 5

Actionability

Concrete and executable: specific paths (memory/narrative/story-bank-builder/), files (claims.ndjson, narrative.ndjson, claims-ledger.md), scripts (registry-events.py, firecrawl.py), proof labels, and an arc beat template (situation → tension → change → outcome); minor gaps only because it is instruction-only with no runnable code (justified for this skill type).

4 / 5

Workflow Clarity

A clear 7-step sequence with explicit checkpoints — 'stop with NEEDS_INPUT' when pillars are missing, 'keep it out of the bank until the tension is real', drop-orphan-or-note, and a 'Done when' checklist — though validation is gating rather than a validate→fix→retry loop.

4 / 5

Progressive Disclosure

Well-organized into Quick Start, Skill Contract, Data Sources, Instructions, Save Results, Reference Materials, and Next Best Skill, with one-level-deep cross-skill references clearly signaled in the Reference Materials list; no bundle files exist under ./references, ./scripts, or ./assets to verify, so structure (not bundle paths) drives the score.

4 / 5

Total

15

/

20

Passed

Description

92%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description: third-person, concrete, with explicit trigger phrases and comprehensive what/when coverage, plus negative-scope exclusions that sharply separate it from sibling skills. Trigger-term coverage is good but not exhaustive of natural synonyms.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'assembles reusable narrative units — origin, founder, customer, transformation, and proof stories — each tagged to a claims-ledger ID and a message-house pillar, with every proof labeled Measured / User-provided / [needs source]' — covering the full output shape comprehensively.

5 / 5

Completeness

Explicitly answers both 'what' (assembles reusable narrative units tagged to claim IDs and pillars, with proof labels) and 'when' (Use when the user asks to...) with concrete trigger phrases.

5 / 5

Trigger Term Quality

Includes natural phrases a user would say ('build a story bank', 'collect our origin and customer stories', 'assemble reusable proof stories for the message'), but coverage is good rather than comprehensive — a few common synonyms/variants are absent and the domain has no file-extension triggers.

4 / 5

Distinctiveness Conflict Risk

Clear niche (story raw material / proof assets) with distinct triggers, reinforced by four explicit 'Not for... use <other-skill>' exclusion clauses that route adjacent work away, giving minimal conflict risk.

5 / 5

Total

19

/

20

Passed

Validation

75%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation12 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

relative_links

Relative link issues: 32 suspicious

Warning

referenced_paths_exist

Referenced path issues: 1 missing, 1 deeper-than-1-level

Warning

Total

12

/

16

Passed

Repository
aaron-he-zhu/aaron-marketing-skills
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.