AgentSkillsCN

homepage

当需要管理主页/CV内容时,可使用此技能——更新个人信息,添加/编辑/移除工作经历、教育背景或技能信息。该技能提供了一个交互式工作流,用于管理存储在TypeScript文件中的内容。

SKILL.md
--- frontmatter
name: homepage
description: This skill should be used when managing homepage/CV content - updating personal info, adding/editing/removing work experience, education entries, or skills. It provides an interactive workflow for content management with data stored in TypeScript files.

Homepage Content Management

Overview

Manage CV-style content for the portfolio homepage. Content is stored in TypeScript data files under src/content/homepage/. The homepage displays four sections: Hero, Experience, Education, and Skills.

Data Files

SectionData FileComponent
Herosrc/content/homepage/hero.tssrc/components/sections/hero.tsx
Experiencesrc/content/homepage/experience.tssrc/components/sections/experience.tsx
Educationsrc/content/homepage/education.tssrc/components/sections/education.tsx
Skillssrc/content/homepage/skills.tssrc/components/sections/skills.tsx

Workflow

Step 1: Display Current State

Run the script to get a compact summary of all content:

bash
python3 .claude/skills/homepage/scripts/read_content.py all

This outputs a token-efficient summary. To read a specific section:

bash
python3 .claude/skills/homepage/scripts/read_content.py hero
python3 .claude/skills/homepage/scripts/read_content.py experience
python3 .claude/skills/homepage/scripts/read_content.py education
python3 .claude/skills/homepage/scripts/read_content.py skills

For full JSON data: python3 .claude/skills/homepage/scripts/read_content.py json

Step 2: Present Options

IMPORTANT: Use the AskUserQuestion tool to present options. Do NOT just output text with options.

code
AskUserQuestion with:
  question: "Which section would you like to update?"
  header: "Section"
  options:
    - label: "Hero"
      description: "Edit name, title, overview, or primary skills"
    - label: "Experience"
      description: "Add, edit, or remove work experience"
    - label: "Education"
      description: "Add, edit, or remove education entries"
    - label: "Skills"
      description: "Add, edit, or remove skill categories"

Hero Section

File: src/content/homepage/hero.ts

Data Structure

typescript
export interface HeroData {
  name: string;
  title: string;
  overview: string;
  primarySkills: string[];
}

Edit Workflow

  1. Use AskUserQuestion to ask which field to edit (name, title, overview, primarySkills)
  2. Read the file to get current value
  3. Use AskUserQuestion to get new value from user (use "Other" option for free-form input)
  4. Update the exported hero object

Experience Section

File: src/content/homepage/experience.ts

Data Structure

typescript
export interface Role {
  title: string;
  type: string; // "Full-time" | "Part-time" | "Freelance" | "Internship" | "Apprenticeship" | "Self-Employed"
  period: string; // "Mon YYYY - Mon YYYY" or "Mon YYYY - Present"
  bullets: string[];
}

export interface Job {
  company: string;
  location: string; // "City, Country (Remote)" or "City, Country"
  roles: Role[];
}

Experience Workflow

First, use AskUserQuestion to ask what action to take:

  • Add new experience
  • Edit existing experience
  • Remove experience

Add Experience: Use AskUserQuestion to gather company name, location, role details (title, type, period, bullets). Most recent jobs appear first in array.

Edit Experience: Use AskUserQuestion to select which company/role to edit (show numbered list from script output), then ask what to modify.

Remove Experience: Use AskUserQuestion to select which company to remove, then confirm deletion.


Education Section

File: src/content/homepage/education.ts

Data Structure

typescript
export interface Education {
  institution: string;
  degree: string;
  gpa?: string;
  location: string;
  period: string; // "YYYY - YYYY"
}

Education Workflow

Same workflow as Experience - use AskUserQuestion to ask what action (add/edit/remove), then gather details or select entries to modify.


Skills Section

File: src/content/homepage/skills.ts

Data Structure

typescript
export interface SkillCategory {
  title: string;
  skills: string[];
}

Skills Workflow

First, use AskUserQuestion to ask what action to take:

  • Add new skill category
  • Edit existing category
  • Remove category

Add Category: Use AskUserQuestion to get category title, then gather initial skills list.

Edit Category: Use AskUserQuestion to select which category, then ask what to modify (rename, add skills, remove skills, reorder).

Remove Category: Use AskUserQuestion to select which category to remove, then confirm deletion.


Content Guidelines

  • Keep overview paragraph concise (3-5 sentences)
  • Use action verbs for experience bullets ("Led", "Built", "Developed")
  • Include quantifiable metrics where possible ("handled 300+ users")
  • Order experience chronologically (most recent first)
  • Group related skills in appropriate categories

Resources

scripts/

  • read_content.py - Parses data files and outputs compact summary

references/

  • data-schema.md - TypeScript interfaces for all section data