Write developer blog posts from video transcripts, meeting notes, or rough ideas while composing reusable personal and explicitly selected corporate writing identities, then checking each draft against the full AI anti-pattern catalog and structural audits.
73
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Use this contract when creating, migrating, updating, or auditing a v1 personal identity.
Write identity.json with this minimum shape, replacing example-author:
{
"schema_version": 1,
"type": "personal",
"name": "example-author",
"status": "draft",
"entrypoint": "identity.md",
"sources": "sources.md"
}name is lowercase kebab-case.status is draft or approved.entrypoint is exactly identity.md.sources is exactly sources.md.resources field means an empty ordered list.When evidence supports additional files, add resources as an ordered array:
{
"resources": [
{"role": "voice", "path": "voice.md"},
{"role": "composition", "path": "composition.md"},
{"role": "examples", "path": "examples.md"},
{"role": "bio", "path": "bio.md"}
]
}Each resource is an object with a lowercase kebab-case role and a non-empty path.
Paths do not start with ~, are relative, and stay inside the package. Preserve resource
order because readers load them in that order.
identity.md.voice, composition, examples, or bio resources only when evidence supports
them.sources.md, record every source's location, date, scope, and authority..tessl-plugin
skills
blog-writer
create-corporate-identity
create-personal-identity
references