Skip to content

Conversation

@justinegeffen
Copy link
Contributor

@justinegeffen justinegeffen commented Dec 11, 2025

Summary

Implemented a comprehensive Claude Code-powered documentation quality system using specialized editorial agents to automate review, maintain style consistency, and enforce editorial standards across Seqera Platform documentation.

What changed

Editorial agents (6 agents created)

Created specialized agents in .claude/agents/ for automated documentation review:

  • voice-tone.md - Enforces second person ("you" not "the user"), active voice, present tense, and confident tone without hedging
  • terminology.md - Ensures consistent product names (Seqera Platform, Nextflow, MultiQC), feature terms, and formatting conventions (bold for UI, backticks for code)
  • clarity.md - Flags long sentences (>30 words), undefined jargon, complex constructions, and missing prerequisites
  • punctuation.md - Checks list punctuation consistency, Oxford comma usage, quotation mark placement, and heading punctuation
  • page-structure.md - Validates heading hierarchy (no skipped levels, H4+ warnings), content patterns (task/reference/concept), prerequisites placement, page flow, and sentence case for headings
  • docs-fix.md - Applies corrections identified by review agents (diff mode for approval, apply mode for auto-fix)

Automated workflows (2 workflows created)

Created GitHub Actions workflows in .github/workflows/:

  • docs-review.yml - Runs 4 parallel agent reviews (structure, voice-tone, terminology, clarity) on Platform docs PRs. Posts summary comment. Supports /fix-docs comment trigger for auto-fixes.
  • claude-pr-review.yml - Orchestrates comprehensive editorial review using editorial-review skill. Supports @claude for review and @claude fix for applying corrections.

Skills and commands

  • editorial-review skill - Coordinates multiple agents in parallel for efficient, comprehensive review with structured reporting
  • platform-changelog-formatter skill - Automates changelog formatting for Platform releases
  • /review command - CLI command for local editorial reviews with customizable profiles (quick, comprehensive, new-content)

Documentation standards

  • CLAUDE.md - Master instruction file covering review workflows, terminology standards (RNA-Seq capitalization rules, product names), directory structure, and automated PR review scope
  • review-config.yaml - Configuration for review profiles, agent selection, and file filtering

Agent standardization

All agent headings converted to sentence case for consistency:

  • "Your Responsibilities" → "Your responsibilities"
  • "Output Format" → "Output format"
  • "Analysis Checklist" → "Analysis checklist"

Added sentence case guidance to page-structure agent with examples and exceptions for product names, acronyms, and proper nouns.

Improvements

Before:

  • No automated documentation quality checks
  • Manual, inconsistent editorial review process
  • Style issues caught late in review cycle
  • No standardized terminology enforcement
  • Scattered documentation standards

After:

  • Automated editorial review on every Platform docs PR (243+ files covered)
  • 4 parallel agent checks provide comprehensive feedback within minutes
  • Clear, actionable suggestions with line numbers and severity ratings
  • One-command fixes via /fix-docs or @claude fix comments
  • Centralized editorial standards in CLAUDE.md
  • Consistent heading capitalization (sentence case) across all documentation

Quality enhancements:

  • Voice consistency: Enforces second person, active voice, present tense
  • Brand protection: Standardizes "Seqera Platform" (never "Tower"), product names, UI formatting
  • Readability: Flags sentences >30 words, undefined jargon, missing prerequisites
  • Structure: Validates heading hierarchy, sentence case compliance, content patterns
  • Automation: Auto-fix capability reduces manual editorial work

Coverage:

  • 6 specialized editorial agents
  • 2 automated workflow files
  • 2 skills for orchestration and changelog formatting
  • 1 review command for local checks
  • ~2,260 lines of agent definitions, workflows, and standards

What to review

All changes are in documentation infrastructure:

Agent definitions (.claude/agents/)

Workflows (.github/workflows/)

Documentation

Focus on:

  • Agent rule completeness and accuracy
  • Workflow trigger conditions and permissions
  • Sentence case guidance examples and exceptions
  • CLAUDE.md clarity for documentation contributors
  • Balance between automation and human judgment

Added Topic Structure Agent documentation for auditing compliance with CTRT framework.

Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Added voice-tone guidelines for documentation PRs, focusing on consistent voice, active tone, and present tense usage.

Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
@netlify
Copy link

netlify bot commented Dec 11, 2025

Deploy Preview for seqera-docs ready!

Name Link
🔨 Latest commit e52f0f2
🔍 Latest deploy log https://app.netlify.com/projects/seqera-docs/deploys/697a1bbf7ae98800076a77de
😎 Deploy Preview https://deploy-preview-955--seqera-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-commit formatting suggestions

Pre-commit hooks found some formatting changes. You can apply each suggestion directly by clicking the "Commit suggestion" button, or run pre-commit locally and commit again.

justinegeffen and others added 3 commits January 12, 2026 18:19
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-commit formatting suggestions

Pre-commit hooks found some formatting changes. You can apply each suggestion directly by clicking the "Commit suggestion" button, or run pre-commit locally and commit again.

@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
CTRT Topic Structure ❌ failure
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure
Inclusive Language ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pre-commit formatting suggestions

Pre-commit hooks found some formatting changes. You can apply each suggestion directly by clicking the "Commit suggestion" button, or run pre-commit locally and commit again.

@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
CTRT Topic Structure ❌ failure
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure
Inclusive Language ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🪄 Pre-commit formatting suggestions

You can apply each suggestion via the GitHub UI, add a comment containing the keyword fix formatting or set up pre-commit locally and commit again.

@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
CTRT Topic Structure ❌ failure
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure
Inclusive Language ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

Add changelog-formatter.skill.md to enable manual formatting and style
checking of Seqera changelogs (Platform, Wave, Nextflow, Fusion).

The skill applies universal style rules from the Seqera changelog style guide:
- Past tense, active voice, sentence case
- Product-specific requirements (attribution for Wave/Nextflow)
- Quality checks for consistency and formatting

Location: .claudeskills/ (standard location for Claude Code skills)
Add automated formatting and style enforcement for Platform Cloud and Enterprise changelogs.

Components added:
1. Manual skill (.claudeskills/platform-changelog-formatter.skill.md)
   - Format individual Platform changelogs on-demand
   - Applies component-based organization and universal style rules
   - Platform-only scope (Cloud and Enterprise)

2. Automated PR review agent (.github/.claude/agents/platform-changelog-style.md)
   - Automatically reviews Platform changelog changes in PRs
   - Enforces past tense, active voice, Studios capitalization
   - Requires component organization (Studios, Compute, Pipelines, etc.)
   - Fails PR if critical style violations found

3. Review configuration update (.github/.claude/agents/review-config.yaml)
   - Registered platform-changelog-style agent
   - Triggers on all Cloud/Enterprise changelog changes
   - Does NOT apply to Wave/Nextflow/Fusion changelogs

Scope: ONLY Seqera Platform Cloud and Enterprise changelogs
- changelog/seqera-cloud/*.md
- changelog/seqera-enterprise/*.md

Wave, Nextflow, and Fusion changelogs remain unchanged (keep attribution format).
Removed changelog-formatter.skill.md as it's redundant with the Platform-specific
formatter. We only need platform-changelog-formatter.skill.md which handles Cloud
and Enterprise changelogs.

Wave, Nextflow, and Fusion changelogs will remain in their current format
(with attribution) and don't need automated formatting.
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🪄 Pre-commit formatting suggestions

You can apply each suggestion via the GitHub UI, add a comment containing the keyword fix formatting or set up pre-commit locally and commit again.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🪄 Pre-commit formatting suggestions

You can apply each suggestion via the GitHub UI, add a comment containing the keyword fix formatting or set up pre-commit locally and commit again.

@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
CTRT Topic Structure ❌ failure
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure
Inclusive Language ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

1 similar comment
@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
CTRT Topic Structure ❌ failure
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure
Inclusive Language ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🪄 Pre-commit formatting suggestions

You can apply each suggestion via the GitHub UI, add a comment containing the keyword fix formatting or set up pre-commit locally and commit again.

@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
CTRT Topic Structure ❌ failure
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure
Inclusive Language ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

justinegeffen and others added 2 commits January 26, 2026 22:49
- Move platform-changelog-style.md to .claude/agents/
- Remove duplicate .github/.claude/ directory
- Align with Claude Code standard architecture

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Move platform-changelog-formatter to .claude/skills/platform-changelog-formatter/SKILL.md
- Move editorial-review to .claude/skills/editorial-review/SKILL.md
- Remove non-standard .claudeskills/ directory
- Each skill now in its own subdirectory with SKILL.md file
- Aligns with Claude Code skills architecture standard

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
CTRT Topic Structure ❌ failure
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure
Inclusive Language ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

justinegeffen and others added 3 commits January 26, 2026 23:02
- Delete ./lint script (linter doesn't exist yet)
- Simplify CLAUDE.md to focus on agent-based reviews
- Remove all references to ../Claude/Linting/claude-md-linter.js
- Keep terminology standards (RNA-Seq rules, product names)
- Document /review command usage instead
- Agents already handle terminology, capitalization, and structure checks

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Delete .claude/agents/topic-structure.md
- Delete .claude/agents/inclusive-language.md
- Update review-config.yaml to remove agent configs and related severity items
- Update review.md to remove agents from comprehensive and new-content profiles
- Update editorial-review/SKILL.md to remove from agent lists
- Remove topic-structure-review and inclusive-review jobs from docs-review.yml
- Update workflow summary to reflect remaining 4 agents
- Remove agents from CLAUDE.md agent list

Keeping core agents: voice-tone, terminology, clarity, punctuation, page-structure

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Delete .claude/agents/platform-changelog-style.md
- Agent was not connected to any workflows or configs
- Functionality is covered by platform-changelog-formatter skill
- Skill does the actual formatting work, agent was redundant

Active agents now: voice-tone, terminology, clarity, punctuation, page-structure, docs-fix

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

- Clarify fix commands: mention both /fix-docs and @claude fix for different workflows
- Remove absolute path reference (/Users/justine.geffen/work/docs/)
- Remove misplaced 'Review output format' section (74 lines)
  - Section contained agent instructions, not user documentation
  - Included typo 'Googl Guide' and 'Non-american'
  - Was redundant with agent descriptions
- File now focused on user-facing documentation workflow

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

📝 Documentation Review Summary

Check Status
Page Structure ❌ failure
Voice/Tone ❌ failure
Terminology ❌ failure
Clarity ❌ failure

Review powered by Claude Code SME agents

To apply fixes: Comment /fix-docs on this PR

justinegeffen and others added 12 commits January 26, 2026 23:23
- Update docs-review.yml to watch Platform Enterprise and Cloud docs
- Update claude-pr-review.yml to watch Platform docs only
- Update review-config.yaml agent patterns to match Platform docs

Now watches:
- platform-enterprise_docs/**/*.md(x)
- platform-cloud/docs/**/*.md(x)
- platform-enterprise_versioned_docs/**/*.md(x)

No longer watches:
- fusion_docs, wave_docs, multiqc_docs, platform-api-docs, changelog

This focuses automated reviews on Platform documentation only.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Clarify which directories get automated PR reviews
- Separate directories into two categories:
  1. Automated PR reviews (Platform docs only)
  2. Manual review only (other products)
- Add file counts for context
- Matches actual workflow paths in docs-review.yml and claude-pr-review.yml

Now accurately documents that only Platform Enterprise and Cloud docs
trigger automated agent reviews, while other products need manual /review.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The claude-code-action requires OIDC token to authenticate.
Added id-token: write permission to both workflows:
- docs-review.yml
- claude-pr-review.yml

This fixes the error: 'Could not fetch an OIDC token'

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The claude-code-action expects 'direct_prompt' not 'prompt'.
Updated all workflow steps to use the correct parameter name.

This fixes the warning: 'Unexpected input(s) prompt'

Changed in both workflows:
- docs-review.yml (5 occurrences)
- claude-pr-review.yml (2 occurrences)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The claude-code-action posts comments directly to PRs.
The Post Structure Results step tried to read 'structure-results.md'
which doesn't exist, causing: ENOENT: no such file or directory

Removed the redundant post-result step. The action handles PR comments automatically.

This fixes error: "ENOENT: no such file or directory, open 'structure-results.md'"

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
The claude-code-action posts comments directly to PRs.
The Post Review Comment step tried to read CLAUDE_OUTPUT env var
which doesn't exist, resulting in unhelpful 'check logs' message.

Removed the redundant post-comment step. The action handles PR comments automatically.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Signed-off-by: Justine Geffen <justinegeffen@users.noreply.github.com>
Deleted the page-structure agent and cleaned up all references across:
- Removed .claude/agents/page-structure.md agent file
- Updated .github/workflows/docs-review.yml (removed structure-review job)
- Updated .claude/agents/review-config.yaml (removed agent config, updated priorities)
- Updated .claude/skills/editorial-review/SKILL.md (removed from agent lists)
- Updated .claude/commands/review.md (updated new-content profile)
- Updated CLAUDE.md (removed from agent list)

The editorial review system now uses 4 agents: voice-tone, terminology, punctuation, and clarity.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Converted remaining title case headings to sentence case across:
- .claude/commands/review.md (3 headings)
- .claude/skills/editorial-review/SKILL.md (24 headings)
- .claude/skills/openapi-overlay-generator/SKILL.md (22 headings)
- .claude/skills/platform-changelog-formatter/SKILL.md (1 heading)

All headings now follow sentence case standard: capitalize only the first word and proper nouns.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants