AgentSkillsCN

update-portfolio-content

更新作品集中的个人信息、简历数据以及互动对话内容。适用于用户希望更新简历、工作经历、技能、个人简介、项目成果,或更新作品集网站上展示的任何个人信息时使用。

SKILL.md
--- frontmatter
name: update-portfolio-content
description: Update portfolio personal information, resume data, and interactive dialogue content. Use when the user wants to update their resume, work experience, skills, bio, projects, or any personal information displayed on the portfolio website.

Update Portfolio Content

This skill guides updating personal/professional content across the portfolio. All content lives in centralized config files—React components only read from these configs.

Architecture Principle

Components never hold personal information. All content must be in config files:

  • src/config/profile.ts - Single source of truth for all personal data
  • src/config/dialogTrees.ts - Interactive chat dialogue content

Update Workflow

Step 1: Update Profile Config

Edit src/config/profile.ts with the new information. This file contains:

typescript
PROFILE = {
  name, // Full name
  title, // Professional title
  location, // Current location
  email, // Contact email
  social, // { github, linkedin }
  portfolio, // { version, title }
  bio, // About section text
  skills, // { frontend, backend, ai, cloud, data, testing, leadership }
  experienceSummary, // Work experience summary
  projects, // Array of { emoji, name, description, tech }
  contactInterests, // Array of discussion topics
  resumeUrl, // Path to resume PDF
};

Step 2: Update Dialogue Trees

Edit src/config/dialogTrees.ts to reflect the updated information. Key nodes to update:

NodeContent to Update
introFirst impression, name, location
about-introBackground story, years of experience, location
about-detailsCareer journey, tech stack, current focus
about-philosophyDevelopment philosophy
work-introCurrent role, company, what you build
work-stackTech stack details, achievements
work-experienceCompany history summary
hire-contactEmail, contact methods
hire-remoteLocation, remote work preferences

Step 3: Verify No Hardcoded Content

Check that src/components/game/ContentModal.tsx only reads from PROFILE:

  • Projects section uses PROFILE.projects
  • Contact section uses PROFILE.contactInterests
  • All other sections reference PROFILE properties

Step 4: Format and Lint

bash
fnm use && npm run format

Dialogue Tone Guidelines

The portfolio has a retro game theme (Day of the Tentacle / Monkey Island inspired). Dialogue should be:

  • Playful and witty - Include humor and game references
  • Accurate - All facts must match the resume/profile data
  • Conversational - Like talking to a friend, not reading a resume

Example Dialogue Style

typescript
// Good - playful with accurate info
"Plot twist: I started with a Master's in Psychology! 10 years later,
here I am in Zürich, building AI-powered security tools at Snyk."

// Bad - too formal
"I am a Senior Software Engineer with 10 years of experience
currently employed at Snyk in Zürich, Switzerland."

Checklist

  • Updated src/config/profile.ts with new information
  • Updated relevant nodes in src/config/dialogTrees.ts
  • Verified ContentModal.tsx has no hardcoded personal content
  • Ran npm run format
  • Tested the site with npm run dev