원클릭으로
persona-detection
Intelligent project persona identification using priority chain detection with LLM and heuristic fallback
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Intelligent project persona identification using priority chain detection with LLM and heuristic fallback
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Defense-in-depth, PII protection, secrets scanning, and secure packaging for distributed software
Systematic testing for confidence without over-testing — the right test at the right level
Generate consistent visual character references across multiple scenarios using Flux and nano-banana-pro on Replicate
Create professional ultra-wide cinematic banners for GitHub READMEs using Flux and Ideogram models with typography options
Generate professional presentations using the Gamma API with expert storytelling consulting based on Duarte methodology.
Reusable patterns for VS Code extension development.
| name | persona-detection |
| description | Intelligent project persona identification using priority chain detection with LLM and heuristic fallback |
Classification: Inheritable (VS Code heir) | Feature Knowledge Activation: persona, know your customer, project type detection, welcome screen, sidebar persona Inheritance: heir:vscode
Detect the most appropriate user persona for a workspace to personalize the Alex experience — sidebar branding, skill suggestions, and Active Context configuration.
| Priority | Source | Signal | Confidence |
|---|---|---|---|
| 1 | Focus | Active Pomodoro session topic | 0.95 |
| 2 | Goal | Stated session objective from goals.json | 0.85 |
| 3 | Phase | Current ROADMAP phase keywords | 0.75 |
| 4 | Project Goals | Learning goals from user-profile.json | 0.70 |
| 5 | Profile Cache | Saved projectPersona (< 7 days old) | cached |
| 6 | Profile + Workspace | Tech stack, expertise, file structure scoring | variable |
| 7 | Default | Developer fallback | 0.50 |
Detection stops at the first confident match. Lower priorities only run if higher ones return null.
developer, academic, researcher, technical-writer, architect, data-engineer, devops, content-creator, fiction-writer, game-developer, project-manager, security, student, job-seeker, presenter, power-user
Three pattern types with distinct matching logic:
| Pattern Type | Example | Match Method |
|---|---|---|
Path (contains /) | src/, .github/workflows/ | fs.pathExists() — directory must actually exist |
Extension (starts with .) | .tex, .fountain | endsWith() on workspace entries |
| Filename | Dockerfile, package.json | Exact case-insensitive Set lookup |
Critical rule: Never use bidirectional substring matching for workspace patterns. It causes false positives (e.g., .github/workflows/ matching any .github/ entry).
When detectAndUpdateProjectPersona() is called (initialize/upgrade):
user-profile.json as projectPersonaupdatePersona()Persona detection updates the Active Context section in copilot-instructions.md:
## Active Context
Persona: Developer (90% confidence)
Objective: v5.7.1 — Avatar UI Enhanced + Architecture Validation Complete
Focus Trifectas: release-management, quality-assurance, documentation-quality-assurance
Principles: KISS, DRY, Quality-First
Last Assessed: 2026-02-15 — v5.7.1
What gets updated:
updateFocusTrifectas()Why separate?
The welcome view displays the persona with confidence % and detection source (profile vs. project detection).
PERSONAS array in personaDetection.ts with: id, name, bannerNoun, hook, skill, icon, accentColor, keywords, techStack, projectPatternspersonaId enumskillNameMap in welcomeView.ts.github/skills/Note: Focus Trifectas are NOT defined per-persona. They're managed independently based on current work context.
3. Add persona ID to the LLM prompt's personaId enum
4. Add skill to getSkillDescription() map and skillNameMap in welcomeView.ts
5. Ensure matching skill exists in .github/skills/
| Issue | Root Cause | Fix |
|---|---|---|
| Every Alex project shows DevOps | .github/ matched via substring | Use fs.pathExists() for path patterns (v5.6.8) |
.github/ triggers power-user | Noise signal in every project | Removed from power-user patterns (v5.6.8) |
| Wrong persona cached | projectPersona in user-profile.json stale | 7-day expiry + re-detect on upgrade |