本文へ移動
cccskills
無料GitHub で公開

handover

Generate project handover documentation for AEM Edge Delivery Services projects. Creates comprehensive guides for content authors, developers, and administrators. Use for "handover docs", "project documentation", "generate handover", "create guides".

インストール方法を見る

含まれるファイル(4)

  • SKILL.md11.0 KB
  • .releaserc.json49 B
  • CHANGELOG.md22 B
  • package.json88 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Project Handover Documentation

Generate comprehensive handover documentation for Edge Delivery Services projects. This skill orchestrates the creation of guides for different audiences.

When to Use This Skill

  • "Generate project handover docs"
  • "Create handover documentation"
  • "Generate project guides"
  • "Handover package"
  • "Project documentation"

Available Documentation Types

GuideAudienceSkill
Authoring GuideContent authors and content managersauthoring
Developer GuideDevelopers and technical teamdevelopment
Admin GuideSite administrators and operationsadmin

Execution Flow

Step 0: Navigate to Project Root and Verify Edge Delivery Services Project (MANDATORY FIRST STEP)

CRITICAL: You MUST execute this cd command before anything else. Do NOT use absolute paths — actually change directory.

# Navigate to git project root (works from any subdirectory)
cd "$(git rev-parse --show-toplevel)"

# Verify it's an Edge Delivery Services project
ls scripts/aem.js

IMPORTANT:

  • You MUST run the cd command above using the Bash tool
  • All subsequent steps operate from project root
  • Do NOT use absolute paths to verify — actually navigate
  • Guides will be created at project-root/project-guides/

If scripts/aem.js does NOT exist, respond:

"This skill is designed for AEM Edge Delivery Services projects. The current directory does not appear to be an Edge Delivery Services project (scripts/aem.js not found).

Please navigate to an Edge Delivery Services project and try again."

STOP if check fails. Otherwise proceed — you are now at project root.


Step 0.5: Clean Up Stale Config

Remove any existing config to ensure fresh org and authentication for this project:

rm -f .claude-plugin/project-config.json

Step 1: Ask User for Documentation Type

MANDATORY: Use the AskUserQuestion tool with EXACTLY these 4 options:

AskUserQuestion({
  "questions": [{
    "question": "Which type of handover documentation would you like me to generate?",
    "header": "Guide Type",
    "options": [
      {"label": "All (Recommended)", "description": "Generate all three guides: Authoring, Developer, and Admin"},
      {"label": "Authoring Guide", "description": "For content authors and managers - blocks, templates, publishing"},
      {"label": "Developer Guide", "description": "For developers - codebase, implementations, design tokens"},
      {"label": "Admin Guide", "description": "For site administrators - permissions, API operations, cache"}
    ],
    "multiSelect": false
  }]
})

DO NOT omit any option. All 4 options MUST be presented.

Step 1.5: Get Organization Name (Required Before Generating Guides)

AFTER the user selects guide type(s), but BEFORE invoking any sub-skills, ensure the organization name is available.

1.5.1 Check for Saved Organization

# Check if org name is already saved
cat .claude-plugin/project-config.json 2>/dev/null | node -e "
  const d = require('fs').readFileSync(0,'utf8');
  try { const o = JSON.parse(d).org; if(o) console.log('org: ' + o); } catch(e) {}
"

1.5.2 Prompt for Organization Name (If Not Saved)

If no org name is saved, you MUST pause and ask the user directly:

"What is your Config Service organization name? This is the {org} part of your Edge Delivery Services URLs (e.g., https://main--site--{org}.aem.page). The org name may differ from your GitHub organization."

IMPORTANT RULES:

  • DO NOT use AskUserQuestion with predefined options — ask as a plain text question
  • Organization name is MANDATORY — do not offer a "skip" option
  • Wait for user to type the org name before proceeding
  • If user doesn't provide a valid org name, ask again

1.5.3 Save Organization Name

Once you have the org name, save it so sub-skills can use it:

# Create config directory if needed
mkdir -p .claude-plugin
# Ensure .claude-plugin is in .gitignore (contains project config)
grep -qxF '.claude-plugin/' .gitignore 2>/dev/null || echo '.claude-plugin/' >> .gitignore

# Save org name to config file
# If "All" was selected, include allGuides flag to skip step 0 in sub-skills
echo '{"org": "{ORG_NAME}"}' > .claude-plugin/project-config.json
# OR if "All (Recommended)" was selected:
echo '{"org": "{ORG_NAME}", "allGuides": true}' > .claude-plugin/project-config.json

Note: Include "allGuides": true ONLY when user selected "All (Recommended)". This signals sub-skills to skip step 0 validation (orchestrator already validated).

Replace {ORG_NAME} with the actual organization name provided by the user.

Why this matters: The organization name is required by the Helix Admin API to determine if the project is repoless (multi-site). By gathering it once in the orchestrator, sub-skills running in parallel don't each need to prompt the user separately.

Step 1.6: Authenticate with Adobe IMS

AFTER saving the organization name, authenticate to obtain an IMS token.

1.6.1 Check for Existing Auth Token

IMS_TOKEN=$(node -e "
  const fs = require('fs');
  try {
    const t = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ims-token.json', 'utf8'));
    if (t.imsToken && t.imsTokenExpiry > Math.floor(Date.now()/1000) + 60) {
      process.stdout.write(t.imsToken);
    }
  } catch (e) {}
")

if [ -n "$IMS_TOKEN" ]; then
  echo "Token valid"
else
  echo "Token missing or expired. Need to authenticate."
fi

1.6.2 Authenticate (If No Valid Token)

If no valid token exists, invoke the auth skill:

Skill({ skill: "project-management:auth" })

This will:

  1. Open a browser for Adobe ID login
  2. Capture the IMS OAuth token automatically
  3. Save token to ~/.aem/ims-token.json (user-level, shared across projects)
  4. Auto-close the browser when complete

Why authenticate in orchestrator: By authenticating once here, all sub-skills running in parallel can use the saved token without each prompting for login separately.

Step 2: Invoke Appropriate Skill(s)

Based on user selection:

SelectionAction
AllInvoke all three skills in parallel (see Step 3)
Authoring GuideSkill({ skill: "project-management:authoring" })
Developer GuideSkill({ skill: "project-management:development" })
Admin GuideSkill({ skill: "project-management:admin" })

Step 3: For "All" Selection

Execute all three guides in PARALLEL with streaming progress updates.

IMPORTANT: Provide immediate feedback to user before starting parallel execution:

"Starting parallel generation of all 3 handover guides:
  📄 Authoring Guide - analyzing blocks, templates, configurations...
  📄 Developer Guide - analyzing code, patterns, architecture...
  📄 Admin Guide - analyzing deployment, security, operations...

You'll see progress updates as each guide moves through its phases."

Launch all three skills simultaneously using parallel Agent tool calls (foreground mode):

In a SINGLE message, invoke three Agent tools in parallel. Foreground agents have full tool permissions and run concurrently:

// All three in ONE message - runs in parallel with full permissions
Agent({
  description: "Generate authoring guide",
  prompt: "Invoke skill project-management:authoring to generate the authoring guide PDF. Show progress as you complete each phase."
})

Agent({
  description: "Generate developer guide",
  prompt: "Invoke skill project-management:development to generate the developer guide PDF. Show progress as you complete each phase."
})

Agent({
  description: "Generate admin guide",
  prompt: "Invoke skill project-management:admin to generate the admin guide PDF. Show progress as you complete each phase."
})

Why foreground agents:

  • Run all 3 in parallel (~3x faster than sequential)
  • Full tool permissions (Bash, Read, Write, Glob, Skill)
  • Progress updates stream as each agent works

When all three complete, report final summary:

"Handover documentation complete:

project-guides/
├── AUTHOR-GUIDE.pdf (full guide for content authors)
├── DEVELOPER-GUIDE.pdf (full guide for developers)
└── ADMIN-GUIDE.pdf (full guide for administrators)

All PDFs generated. Source files cleaned up."

Benefits of parallel execution:

  • ~3x faster than sequential execution
  • User sees continuous progress updates
  • Each guide generates independently

Output Files

SelectionOutput Files
Allproject-guides/AUTHOR-GUIDE.pdf, project-guides/DEVELOPER-GUIDE.pdf, project-guides/ADMIN-GUIDE.pdf
Authoring Guideproject-guides/AUTHOR-GUIDE.pdf
Developer Guideproject-guides/DEVELOPER-GUIDE.pdf
Admin Guideproject-guides/ADMIN-GUIDE.pdf

Note: Each sub-skill generates a PDF only. All source files (.md, .html, .plain.html) are cleaned up after PDF generation.


⚠️ CRITICAL PATH REQUIREMENT

ALL FILES MUST BE SAVED TO project-guides/ FOLDER:

project-guides/AUTHOR-GUIDE.md
project-guides/DEVELOPER-GUIDE.md
project-guides/ADMIN-GUIDE.md

WHY THIS MATTERS: Files must be in project-guides/ for proper organization and PDF conversion.

BEFORE WRITING ANY FILE: Run mkdir -p project-guides first.


MANDATORY RULES

STRICTLY FORBIDDEN:

  • ❌ Do NOT read or analyze fstab.yaml — it does NOT exist in most projects and does NOT show all sites
  • ❌ Do NOT create .plain.html files
  • ❌ Do NOT use convert_markdown_to_html tool
  • ❌ Do NOT tell user to "convert markdown to PDF manually"
  • ❌ Do NOT say "PDF will be generated later" — each sub-skill generates PDF immediately
  • ❌ Do NOT save markdown to root directory or any path other than project-guides/

REQUIRED:

  • ✅ Run mkdir -p project-guides before writing any files
  • ✅ Each sub-skill MUST save markdown to project-guides/ folder (EXACT PATH)
  • ✅ Markdown files MUST have title and date fields in frontmatter
  • ✅ Each sub-skill MUST invoke project-management:whitepaper to generate PDF immediately after saving markdown
  • ✅ Each sub-skill MUST cleanup ALL source files (.md, .html, .plain.html) after PDF generation
  • ✅ Final output is .pdf files ONLY in project-guides/ folder

Related Skills

This skill invokes:

  • project-management:authoring - Author/content manager guide (generates PDF immediately)
  • project-management:development - Developer technical guide (generates PDF immediately)
  • project-management:admin - Admin operations guide (generates PDF immediately)
  • project-management:whitepaper - PDF generation (invoked by each sub-skill after saving markdown)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

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."

日本語の概要は準備中です。原文の説明を表示しています。

OCIOStateOfNebraska/stateofnebraska-aem32026年10月9日 更新

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."

日本語の概要は準備中です。原文の説明を表示しています。

OCIOStateOfNebraska/stateofnebraska-aem32026年10月9日 更新

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."

日本語の概要は準備中です。原文の説明を表示しています。

OCIOStateOfNebraska/stateofnebraska-aem32026年10月9日 更新

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."

日本語の概要は準備中です。原文の説明を表示しています。

OCIOStateOfNebraska/stateofnebraska-aem32026年10月9日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

OCIOStateOfNebraska/stateofnebraska-aem32026年10月9日 更新

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.

日本語の概要は準備中です。原文の説明を表示しています。

OCIOStateOfNebraska/stateofnebraska-aem32026年10月9日 更新

OCIOStateOfNebraska のスキルをすべて見る

このスキルの問題を報告する