Skip to content
Back to skills

Author Profile

ASecurity

Create author profiles via questionnaire or transcript analysis for consistent article voice

  • 35 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 8, 2026
content-marketingphpbashexpressapi

Works with

  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add mwguerra/claude-code-plugins --skill author-profile --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Author Profile?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Author Profile
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mwguerra-author-profile/badge)](https://www.skillsdirectory.com/skills/mwguerra-author-profile)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: author-profile
description: Create author profiles via questionnaire or transcript analysis for consistent article voice
---

# Author Profile

Create and maintain consistent author voice across all articles.

## Profile Location

Stored in: `.article_writer/authors.json`

Schema: `.article_writer/schemas/authors.schema.json`

## Two Ways to Create an Author

### Option 1: Manual Questionnaire

Ask questions in conversational groups (2-3 at a time):

#### Identity
1. What name/identifier for this author? (e.g., "mwguerra")
2. Display name? (e.g., "MW Guerra")
3. Professional role(s)?
4. Years/areas of experience?
5. Expertise areas?

#### Languages
6. Primary writing language? (e.g., pt_BR, en_US)
7. Translation target languages?

#### Tone (1-10)
8. Casual (1) vs Formal (10)?
9. Neutral (1) vs Opinionated (10)?

#### Vocabulary
10. Terms readers know (use freely)?
11. Terms to always explain?

#### Style
12. Signature phrases?
13. Phrases to avoid?

#### Positions
14. Strong technology opinions?
15. Topics to stay neutral on?

#### Example
16. Write 2-3 sentences in your voice as example.

### Option 2: Extract from Transcripts

**Use Skill(voice-extractor) for transcript analysis.**

If the author has recordings (podcasts, interviews, videos, meetings):

1. **Prepare transcripts** - Get transcription files with speaker labels
2. **Run analysis**:
   ```bash
   bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts --speaker "Name" transcripts/*.txt
   ```
3. **Review extracted data** - Communication style, phrases, vocabulary
4. **Add identity info** - Name, role, expertise, languages (manual)
5. **Merge** - Combine extracted + manual data

### Option 3: Combined Approach (Recommended)

Best results come from combining both:
1. Extract voice patterns from transcripts
2. Add identity/expertise info manually
3. Review and refine the merged profile

## Author JSON Structure

```json
{
  "id": "author-slug",
  "name": "Display Name",
  "languages": ["pt_BR", "en_US"],
  "role": "Senior Developer",
  "experience": "10+ years",
  "expertise": ["Laravel", "PHP", "Architecture"],
  "tone": {
    "formality": 4,
    "opinionated": 7
  },
  "vocabulary": {
    "use_freely": ["Controllers", "Middleware", "API"],
    "always_explain": ["DDD", "CQRS", "Event Sourcing"]
  },
  "phrases": {
    "signature": ["Na prática...", "Vamos direto ao ponto:"],
    "avoid": ["Simplesmente", "É só fazer..."]
  },
  "opinions": {
    "strong_positions": ["Tests are essential", "Fat models are bad"],
    "stay_neutral": ["Tabs vs spaces", "IDE preferences"]
  },
  "example_voice": "Sample paragraph in author's voice...",
  "voice_analysis": {
    "extracted_from": ["podcast_ep1.txt", "interview.txt"],
    "sample_count": 156,
    "total_words": 12450,
    "sentence_structure": {
      "avg_length": 14.5,
      "variety": "moderate length, conversational",
      "question_ratio": 12.3
    },
    "communication_style": [
      { "trait": "enthusiasm", "percentage": 28.5 },
      { "trait": "analytical", "percentage": 24.1 }
    ],
    "characteristic_expressions": ["you know", "the thing is"],
    "sentence_starters": ["I think", "So the"],
    "signature_vocabulary": ["approach", "strategy", "implementation"],
    "analyzed_at": "2025-01-15T10:00:00Z"
  },
  "notes": "Additional style notes..."
}
```

## Voice Analysis Fields

When transcripts are analyzed, these fields are populated:

| Field | Description |
|-------|-------------|
| `extracted_from` | Transcript files analyzed |
| `sample_count` | Speaking turns analyzed |
| `total_words` | Total words in analysis |
| `sentence_structure` | Length, variety, question frequency |
| `communication_style` | Traits: enthusiasm, hedging, directness, etc. |
| `characteristic_expressions` | Frequently used phrases/fillers |
| `sentence_starters` | Common ways to start sentences |
| `signature_vocabulary` | Words that characterize the speaker |

## Using Voice Analysis When Writing

When writing articles, use voice_analysis data:

1. **Sentence structure**: Match `avg_length` and `variety`
2. **Tone**: Follow `communication_style` traits
3. **Natural speech**: Sprinkle `characteristic_expressions` naturally
4. **Vocabulary**: Prefer words from `signature_vocabulary`
5. **Sentence starters**: Use patterns from `sentence_starters`

## Multi-Language Workflow

1. Article written in author's primary language (first in array)
2. After completion, translated to other languages
3. Each file named: `{slug}.{language}.md`

Example for author with `["pt_BR", "en_US"]`:
```
content/articles/2025_01_15_rate-limiting/
├── rate-limiting.pt_BR.md    # Primary (written first)
└── rate-limiting.en_US.md    # Translation
```

## Default Author

If article task doesn't specify author:
- First author in `authors.json` is used
- Their language settings apply
- Their voice/tone is followed

## Updating Authors

### Add More Transcript Data

```bash
# Analyze new transcripts for existing author
bun run "${CLAUDE_PLUGIN_ROOT}"/scripts/voice-extractor.ts \
  --speaker "Name" \
  --author-json \
  new_podcast.txt > new_analysis.json

# Merge into existing profile (manually or via command)
```

### When to Update
- New transcript data available
- Writing style evolves
- Feedback indicates tone mismatch
- New expertise develops

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…