본문으로 건너뛰기
cccskills
무료GitHub에 공개

building-blocks

Guide for implementing code changes in AEM Edge Delivery Services. Handles block development (new or modified), core functionality changes (scripts.js, styles, delayed.js, etc.), or both. Use this skill for all implementation work guided by the content-driven-development workflow.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(6)

  • SKILL.md8.9 KB
  • .releaserc.json49 B
  • CHANGELOG.md611 B
  • package.json95 B
  • references/css-guidelines.md7.9 KB
  • references/js-guidelines.md9.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Building Blocks

This skill guides you through implementing AEM Edge Delivery blocks following established patterns and best practices. Blocks transform authored content into rich, interactive experiences through JavaScript decoration and CSS styling.

IMPORTANT: This skill should ONLY be invoked from the content-driven-development skill during Step 5 (Implementation).

If you are not already following the CDD process, STOP and invoke the content-driven-development skill first.

Related Skills

  • content-driven-development: MUST be invoked before using this skill to ensure content and content models are ready
  • da-auth: Obtain a valid Adobe IMS token if test content needs to be pushed to DA before implementation can begin
  • block-collection-and-party: Use to find similar blocks for patterns
  • testing-blocks: Automatically invoked during Step 5 for comprehensive testing

When to Use This Skill

This skill is invoked automatically by content-driven-development during Step 5 (Implementation). It handles:

Block Development:

  • Creating new block files and structure
  • Implementing JavaScript decoration
  • Adding CSS styling

Core Functionality:

  • Scripts.js modifications (decoration, utilities, auto-blocking)
  • Global styles (styles.css, lazy-styles.css)
  • Delayed functionality (delayed.js)
  • Configuration changes

Combined:

  • Blocks with supporting core changes (utilities, global styles, etc.)

Prerequisites (verified by CDD):

  • ✅ Test content exists (in CMS or local drafts)
  • ✅ Content model is defined/documented (if applicable)
  • ✅ Test content URL is available
  • ✅ Dev server is running

Block Implementation Workflow

Track your progress:

  • Step 1: Find similar blocks for patterns (if new block or major changes)
  • Step 2: Create or modify block structure (files and directories)
  • Step 3: Implement JavaScript decoration (skip if CSS-only)
  • Step 4: Add CSS styling
  • Step 5: Test implementation (invokes testing-blocks skill)

Note: If your changes require core modifications (utilities in scripts.js, global styles, etc.), make those changes first, test them, then return to this workflow. See "When Modifying Core Files" below.

Step 1: Find Similar Blocks

When to use: Creating new blocks or making major structural modifications

Skip this step when: Making minor modifications to existing blocks (CSS tweaks, small decoration changes)

Quick start:

  1. Search the codebase for similar blocks:

    ls blocks/
    
  2. Use the block-collection-and-party skill to find reference implementations

  3. Review patterns from similar blocks:

    • DOM manipulation strategies
    • CSS architecture
    • Variant handling
    • Performance optimizations

Step 2: Create or Modify Block Structure

For New Blocks:

  1. Create the block directory and files:

    mkdir -p blocks/{block-name}
    touch blocks/{block-name}/{block-name}.js
    touch blocks/{block-name}/{block-name}.css
    
  2. Basic JavaScript structure:

    /**
     * decorate the block
     * @param {Element} block the block
     */
    export default async function decorate(block) {
      // Your decoration logic here
    }
    
  3. Basic CSS structure:

    /* All selectors scoped to block */
    main .{block-name} {
      /* block styles */
    }
    

For Existing Blocks:

  1. Locate the block directory: blocks/{block-name}/
  2. Review current implementation:
    # View the initial HTML structure from the server
    curl http://localhost:3000/{test-content-path}
    
  3. Understand existing decoration logic and styles

Step 3: Implement JavaScript Decoration

Essential pattern - re-use existing DOM elements:

export default async function decorate(block) {
  // Platform delivers images as <picture> elements with <source> tags
  const picture = block.querySelector('picture');
  const heading = block.querySelector('h2');

  // Create new structure, re-using existing elements
  const figure = document.createElement('figure');
  figure.append(picture);  // Re-uses picture element

  const wrapper = document.createElement('div');
  wrapper.className = 'content-wrapper';
  wrapper.append(heading, figure);

  block.replaceChildren(wrapper);

  // Only check variants when they affect decoration logic
  // CSS-only variants like 'dark', 'wide' don't need JS
  if (block.classList.contains('carousel')) {
    // Carousel variant needs different DOM structure/behavior
    setupCarousel(block);
  }
}

For complete JavaScript guidelines including:

  • Advanced DOM manipulation patterns
  • Fetching data and loading modules
  • Performance optimization techniques
  • Helper functions from aem.js
  • Code style and linting rules

Read references/js-guidelines.md

Step 4: Add CSS Styling

Essential patterns - scoped, responsive, using custom properties:

/* All selectors MUST be scoped to block */
main .my-block {
  /* Use CSS custom properties for consistency */
  background-color: var(--background-color);
  color: var(--text-color);
  font-family: var(--body-font-family);
  max-width: var(--max-content-width);

  /* Mobile-first styles (default) */
  padding: 1rem;
  flex-direction: column;
}

main .my-block h2 {
  font-family: var(--heading-font-family);
  font-size: var(--heading-font-size-m);
}

main .my-block .item {
  display: flex;
  gap: 1rem;
}

/* Tablet and up */
@media (width >= 600px) {
  main .my-block {
    padding: 2rem;
  }
}

/* Desktop and up */
@media (width >= 900px) {
  main .my-block {
    flex-direction: row;
    padding: 4rem;
  }
}

/* Variants - most are CSS-only */
main .my-block.dark {
  background-color: var(--dark-color);
  color: var(--clr-white);
}

For complete CSS guidelines including:

  • All available CSS custom properties
  • Modern CSS features (grid, logical properties, etc.)
  • Performance optimization
  • Naming conventions
  • Common patterns and anti-patterns

Read references/css-guidelines.md

Note on iterative validation: While building, you can test changes in your browser as you go (load test content URL, check console, verify layout and functionality). For comprehensive testing guidance including browser testing techniques, responsive testing, and validation approaches, see the testing-blocks skill invoked in Step 5.

Step 5: Test Implementation

After implementation is complete, invoke the testing-blocks skill.

The testing-blocks skill will guide you through:

  • Browser testing (functionality, responsive behavior across viewports)
  • Linting and fixing issues
  • Writing unit tests for logic-heavy utilities (if needed)
  • Screenshot capture for validation
  • Performance validation

Provide the testing-blocks skill with:

  • Block name being tested
  • Test content URL(s) (from step 4 of CDD process)
  • Any variants that need testing
  • Screenshots of existing implementation/design/mockup to verify against
  • Acceptance criteria to verify (from step 2 of CDD process)

After testing is complete, return to CDD workflow.


When Modifying Core Files

If your changes require modifying core files (scripts.js, styles.css, delayed.js), follow these principles:

Common core files:

  • scripts.js - Decoration utilities, auto-blocking logic, page loading
  • styles.css - Global styles (eager), CSS custom properties
  • lazy-styles.css - Global styles (lazy loaded)
  • delayed.js - Marketing, analytics, third-party integrations

Key principles:

  1. Make core changes first (before block changes that depend on them)
  2. Test core changes independently with existing content before using in blocks
  3. Consider impact - core changes can affect multiple blocks/pages
  4. Test thoroughly - verify no regressions in existing functionality
  5. Keep it minimal - only add what's necessary
  6. Document with code comments - most core changes don't need separate docs

Testing core changes:

  • Test with existing content URLs that use affected functionality
  • For auto-blocking: test pages that should/shouldn't trigger it
  • For global styles: test across multiple blocks and pages
  • Check console for errors
  • Verify responsive behavior

For detailed patterns:


Reference Materials

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Analyzes a multi-step conversion funnel to find where visitors drop off and which steps have the worst leakage. Use this skill when someone describes a journey and asks about conversion rates, drop-off, fallout, or step completion. Trigger for "analyze our checkout funnel," "where are visitors dropping off," "what's our add-to-cart to purchase conversion rate," "funnel analysis," "show me fallout between steps," or "which step loses the most visitors."

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aemgdc/aemdev22026년 10월 18일 업데이트

Generates a concise, executive-ready performance summary covering key metrics, trends, and what's driving movement. Use this skill when someone needs to produce a briefing, executive summary, performance narrative, or stakeholder readout — for example, "write an exec summary of last week's performance," "create a performance briefing for our leadership team," "produce a monthly business review summary," "what should I tell executives about our metrics," or "generate a performance narrative." Also trigger for "QBR summary," "weekly business review," or "stakeholder briefing."

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aemgdc/aemdev22026년 10월 18일 업데이트

Produces a compact KPI digest showing how key metrics changed over a period and what's driving the movement. Use this skill when someone asks for a performance summary, a weekly recap, a morning briefing, a KPI update, or any variation of "how did we do this week/month." Also trigger for "give me a performance overview," "what moved in the last 7 days," "pull our AA KPI report," or "summarize our metrics."

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aemgdc/aemdev22026년 10월 18일 업데이트

Compares the performance of two or more audience segments across key metrics side by side. Use this skill when someone wants to compare audiences or visitor groups — for example, "how do mobile visitors compare to desktop on conversion," "compare new vs. returning visitors," "show me the difference between these two segments," "compare these audiences on our KPIs," or "which segment performs better." Also trigger for "segment comparison" or "audience comparison."

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aemgdc/aemdev22026년 10월 18일 업데이트

Identifies which items (pages, campaigns, products, channels, regions) had the biggest increases or decreases for a key metric between two time periods. Use this skill when someone asks "what's up and what's down," "which campaigns moved the most," "top gainers and losers," "what pages are trending," "show me what changed by channel," or any variation of identifying the biggest movers and decliners for a metric.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aemgdc/aemdev22026년 10월 18일 업데이트

Scan an AEM Edge Delivery Services page for WCAG 2.1 AA accessibility violations and generate specific fixes. Identifies missing alt text, heading hierarchy issues, link text problems, color contrast concerns, and EDS-specific accessibility patterns. Use when fixing accessibility issues, preparing for compliance audits, or remediating WCAG violations.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

aemgdc/aemdev22026년 10월 18일 업데이트

aemgdc의 스킬 모두 보기

이 스킬의 문제 신고