authoring-analysis

Use this when the page-import pipeline needs to determine the authoring approach (default content vs blocks) for scraped content before generating import HTML…

INSTALLATION
npx skills add https://github.com/adobe/skills --skill authoring-analysis
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Authoring Analysis

Determine authoring approach for EACH content sequence: default content or specific block.

When to Use This Skill

Use this skill when:

  • You have page structure with content sequences (from identify-page-structure)
  • You have block inventory (local + Block Collection)
  • Ready to make authoring decisions following David's Model

Invoked by: page-import skill (Step 3)

Prerequisites

From identify-page-structure skill, you need:

  • ✅ Section boundaries with styling notes
  • ✅ Content sequences per section (neutral descriptions)
  • ✅ Block inventory (local + Block Collection with purposes)
  • ✅ screenshot.png for visual reference

Related Skills

  • page-import - Orchestrator that invokes this skill
  • identify-page-structure - Provides section structure and block inventory
  • content-modeling - This skill invokes it when block selection is unclear
  • block-collection-and-party - This skill invokes it to validate blocks
  • generate-import-html - Uses this skill's output to create HTML

IMPORTANT: Step 3e Execution Trigger

After completing Step 3 (analyzing all sequences), you MUST execute Step 3e if:

  • ✅ At least one section contains exactly ONE sequence that became a block
  • ✅ That section has distinct background styling from identify-page-structure

If NO sections meet these criteria → Skip Step 3e

If ANY sections meet these criteria → Execute Step 3e for EACH qualifying section

Authoring Analysis Workflow

Context: You now have:

  • Section boundaries with styles
  • Content sequences per section
  • Available block palette

FOR EACH content sequence, follow this mandatory process:

Step 3a: MANDATORY - Default Content Check (FIRST!)

Question: "Can an author create this with normal typing in Word/Google Docs?"

Default content means:

  • ✅ Headings, paragraphs, lists
  • ✅ Inline images within text
  • ✅ Simple quotes
  • ✅ Just... typing content

NOT default content means:

  • ❌ Repeating structured patterns (card grids, feature lists)
  • ❌ Interactive components (accordions, tabs, carousels)
  • ❌ Complex layouts (side-by-side columns, split content)
  • ❌ Requires specific structure for decoration

Decision:

  • If YES (can type normally) → Mark as DEFAULT CONTENT, DONE
  • If NO (needs structure) → Proceed to Step 3b

Examples:

"Large centered heading, paragraph, two buttons"

→ Can author just type heading, paragraph, links? YES

→ Decision: DEFAULT CONTENT ✅

"Two centered buttons"

→ Can author just type two links? YES

→ Decision: DEFAULT CONTENT ✅

"Four items in grid, each with image, heading, description"

→ Can author just type this? NO - requires grid structure

→ Decision: Proceed to Step 3b ➡️

"Expandable questions and answers"

→ Can author just type this? NO - requires interaction/decoration

→ Decision: Proceed to Step 3b ➡️

Step 3b: Block Selection (ONLY IF NOT DEFAULT)

With block inventory context, ask: "Which available block would an author choose for this?"

DECISION TREE: When to Invoke content-modeling

OBVIOUS MATCH (Don't invoke content-modeling):

Pattern matches block purpose 1:1:

  • "Grid of items with images/text" + see "cards" block → USE IT ✅
  • "Expandable questions" + see "accordion" block → USE IT ✅
  • "Tabbed content panels" + see "tabs" block → USE IT ✅
  • "Side-by-side content" + see "columns" block → USE IT ✅
  • "Rotating images" + see "carousel" block → USE IT ✅

Criteria for OBVIOUS:

  • Content description matches block purpose exactly
  • No ambiguity about structure
  • Block exists in inventory

UNCLEAR MATCH (Invoke content-modeling):

Ambiguous which block to use:

  • "Three items with images" - Could be cards? Could be columns? → INVOKE
  • "List of features with icons" - Cards? Custom list block? → INVOKE
  • "Customer quotes with photos" - Quote block? Cards? Testimonial block? → INVOKE

Missing from inventory:

  • Content needs structure BUT no matching block exists → INVOKE
  • content-modeling can recommend canonical model or suggest creating custom block

Complex authoring consideration:

  • "Hero-like content but in middle of page" → INVOKE
  • "Card-like items but only 2 of them" → INVOKE
  • Need validation on author mental model → INVOKE

Criteria for UNCLEAR:

  • Multiple blocks could work
  • No obvious block match
  • Need authoring perspective validation
  • Creating custom block might be needed

Step 3c: Validate Block Exists (IF NEEDED)

Only if block not in Block Collection common set:

Invoke block-collection-and-party skill to:

  • Confirm block exists
  • Get live example URL
  • Review content model

Step 3d: Get Block HTML Structure (BEFORE generating HTML)

CRITICAL: Before generating any HTML in next skill, fetch the pre-decoration HTML structure for ALL blocks you'll use.

# Get structure examples for each block

node .claude/skills/block-collection-and-party/scripts/get-block-structure.js cards

node .claude/skills/block-collection-and-party/scripts/get-block-structure.js tabs

node .claude/skills/block-collection-and-party/scripts/get-block-structure.js accordion

node .claude/skills/block-collection-and-party/scripts/get-block-structure.js columns

Why this prevents mistakes:

  • Shows exact row/column structure (e.g., cards: each card = 1 row with 2 columns)
  • Reveals all variants (e.g., "Cards" vs "Cards (no images)")
  • Displays clean HTML without decoration
  • Prevents the #1 HTML generation error: wrong structure

Use the output to:

  • Understand how many columns each row should have
  • See where images vs content go
  • Match your content to the correct variant
  • Generate HTML that matches the expected structure exactly

Step 3 Output Format

Complete analysis for all sequences:

Section 1 (light):

  - Sequence 1: "Large centered heading, paragraph, two call-to-action buttons"

    → Decision: DEFAULT CONTENT

    → Reason: Author can type heading, paragraph, links normally

    → Note: Prominent styling is a CSS concern

  - Sequence 2: "Two images side-by-side"

    → Decision: Columns block (2 columns)

    → Reason: Side-by-side layout requires structure

    → Obvious match with "columns" block in inventory

Section 2 (light):

  - Sequence 1: "Centered heading"

    → Decision: DEFAULT CONTENT

    → Reason: Just a heading - author types it

  - Sequence 2: "Grid of 8 items, each with icon and short text"

    → Decision: Cards block

    → Reason: Repeating structured pattern, needs block

    → Obvious match with "cards" block in inventory

  - Sequence 3: "Two centered buttons"

    → Decision: DEFAULT CONTENT

    → Reason: Just two links - author types them

Section 3 (grey):

  - Sequence 1: "Eyebrow text, heading, paragraph, button stacked vertically"

    → Decision: DEFAULT CONTENT

    → Reason: Author types text and link normally

  - Sequence 2: "Four items in grid, each with image, category tag, heading, description"

    → Decision: Cards block

    → Reason: Repeating structured pattern

    → Obvious match with "cards" block in inventory

Section 4 (dark):

  - Sequence 1: "Tab navigation with three switchable content panels"

    → Decision: Tabs block

    → Reason: Interactive component, needs decoration

    → Obvious match with "tabs" block in inventory

Step 3e: Validate Section Styling (Single-Block Sections Only)

⚠️ EXECUTION TRIGGER: This step is executed AFTER Step 3 is complete. Execute this step if and only if:

  • ✅ You have completed Step 3 (identified which sequences become blocks)
  • ✅ At least one section contains exactly ONE sequence that became a block
  • ✅ That section has distinct background styling from identify-page-structure

If NO sections meet these criteria → Skip Step 3e entirely and proceed to next skill

If ANY sections meet these criteria → You MUST execute all sub-steps below for EACH qualifying section

Why this validation matters:

When a section contains a single block, the background styling might be:

  • Block-specific design (e.g., hero with dark background image) → Don't add section-metadata
  • Section container styling (e.g., dark section with tabs block) → Add section-metadata

Without validation, we risk adding unnecessary section-metadata that conflicts with block styling or makes authoring more complex.

Sections with multiple sequences: Always keep section-metadata (styling applies to all content, not validated in Step 3e)

For EACH section with exactly one block, execute ALL these sub-steps:

Sub-step 1: Identify the candidate sections

Review your Step 3 output. Find sections where:

  • Section contains exactly 1 content sequence
  • That sequence became a block (not default content)
  • Section has distinct background styling from identify-page-structure

Example:

Section 1 (dark blue):

  - Sequence 1: Large centered heading, paragraph, two buttons

    → Decision: Hero block

Section 3 (grey):

  - Sequence 1: Tab navigation with three switchable panels

    → Decision: Tabs block

Sub-step 2: For each candidate section, examine the screenshot

Open screenshot.png and examine the section visually.

Ask these questions:

Q1: Is the background an image (photo, gradient, illustration)?

  • If YES → Likely block-specific design
  • If NO (solid color) → Continue to Q2

Q2: Does the content fill the colored area edge-to-edge, or is there visible section padding?

  • Edge-to-edge (full-bleed) → Likely block-specific design
  • Visible padding around content → Likely section container styling

Q3: Does the block type typically have its own background styling?

  • Hero, banner, full-width CTAs → Often have own backgrounds
  • Tabs, accordion, cards, columns → Often use section backgrounds

Sub-step 3: Make the decision

Based on your analysis, decide for each single-block section:

SKIP section-metadata if:

  • Background is an image/gradient (block-specific)
  • Content is full-bleed/edge-to-edge (no section padding visible)
  • Block type typically has intrinsic background (hero, banner)

KEEP section-metadata if:

  • Background is solid color with visible section padding
  • Block type typically inherits section styling (tabs, cards, accordion)
  • Styling clearly provides container context (not block design)

Sub-step 4: Document your decisions

For each validated section, note:

  • Section number
  • Block type
  • Background analysis (image vs solid, full-bleed vs padded)
  • Decision (keep or skip section-metadata)
  • Reason

Example output:

VALIDATED SECTIONS:

Section 1 (dark blue):

  - Block: Hero

  - Background: Full-width dark blue gradient image

  - Layout: Edge-to-edge, no visible section padding

  - Decision: SKIP section-metadata

  - Reason: Background is hero's design, not section styling

Section 3 (grey):

  - Block: Tabs

  - Background: Solid grey (#f5f5f5)

  - Layout: Content centered with visible padding (~80px on sides)

  - Decision: KEEP section-metadata style="grey"

  - Reason: Section provides container styling for tabs block

When in doubt:

If you're uncertain whether background is block-specific or section-wide:

  • Default to KEEPING section-metadata (safer, easier for authors to remove than add)
  • Add a note in your documentation explaining the ambiguity
  • Consider asking the user for guidance

Step 3e Completion Checklist:

Before proceeding to next skill, verify you have completed:

  • ✅ Identified all single-block sections with background styling
  • ✅ Examined original screenshot for EACH candidate section
  • ✅ Answered Q1, Q2, Q3 for EACH candidate section
  • ✅ Made skip/keep decision for EACH candidate section
  • ✅ Documented reasoning for EACH decision
  • ✅ Updated section styling notes with validated decisions

Final Output

This skill provides complete authoring analysis:

1. Authoring decisions for all sequences:

  • Each sequence marked as DEFAULT CONTENT or specific block name
  • Reasoning documented

2. Block structures fetched:

  • HTML structure examples for all blocks to be used

3. Section styling validation (if applicable):

  • Updated section list with validated styling decisions
  • Some sections may be marked "no section-metadata"

Next step: Pass these outputs to generate-import-html skill

BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card