Communitygithub.com

portfolio-kup

Cria um perfil de página única (one page) mostrando as habilidades, personalidade, trajetória e direções de carreira do usuário, com base no histórico do Claude Code (local e em outras máquinas via SSH), testes e entrevistas.

O que é portfolio-kup?

Esta skill gera um portfólio profissional em formato de página única, bilíngue (tailandês/inglês), a partir de evidências reais coletadas do histórico de uso do Claude Code pelo desenvolvedor. Ela é útil para quem deseja ter uma visão clara e baseada em dados sobre sua carreira: quais são seus pontos fortes e fracos, qual cargo e salário são compatíveis com seu nível, e para qual área ou função seguir. A skill funciona em múltiplas plataformas (Claude Code) e também pode acessar outras máquinas via SSH para coletar dados. O processo inclui coleta de dados (contagens de prompts, horas de trabalho, tokens, etc.), análise qualitativa dos prompts, aplicação de um teste situacional, pesquisa de salários e carreiras na web (tailandês e inglês), e uma entrevista para entender objetivos e contexto pessoal. O resultado é uma página web com design limpo e informativo, exibindo gráficos, radar de habilidades, personalidade, estágios de crescimento e recomendações de carreira, sempre com transparência sobre as fontes e limitações dos dados.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Neckkup/portfolio-kup/tree/HEAD

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que portfolio-kup faz?

Cria o perfil do usuário a partir de evidências reais e gera uma página web de uma página, bilíngue (tailandês/inglês). Responde ao usuário em tailandês, mantendo termos técnicos em inglês.

Etapas

Siga a ordem · Use AskUserQuestion para todas as decisões do usuário · Para tópicos com muitas informações, resuma primeiro no chat e depois insira na página.

1. Coleta de dados

  1. Pergunte se há outras máquinas usando Claude Code (ssh user@host) · Se o usuário já informou no pedido, não pergunte.
  2. Execute o script em todas as máquinas (saída apenas com números, sem prompts ou chaves):
    S=~/.claude/skills/portfolio-kup/scripts; D=<scratchpad>/pk; mkdir -p $D
    python3 $S/collect.py > $D/local.json
    ssh -o BatchMode=yes user@host python3 - < $S/collect.py > $D/host1.json
    python3 $S/merge.py $D/*.json > $D/metrics.json     # tabela resumo no stderr
    
  3. Leia o conteúdo dos prompts para avaliação qualitativa (~/.claude/history.jsonl campos display, project) · Leia aleatoriamente, distribuído entre todos os projetos/meses · NÃO copie keys/tokens/senhas encontradas para a resposta ou página web – apenas conte.

Limitações a informar ao usuário:

  • history.jsonl conta apenas quando o usuário digita · Períodos de agente trabalhando sozinho não são contados.
  • Transcripts (~/.claude/projects/**/*.jsonl) são deletados após cleanupPeriodDays (padrão 30 dias) · tokens e tempo de IA disponíveis apenas do período recente.
  • Meses com prompts < 100 (enough_data: false) têm números instáveis NÃO use para comparação.
  • A contagem de comportamentos é baseada em palavras-chave, indicando tendências, não medições precisas.

2. Avaliação (responda no chat)

  • Possível cargo · Nível (Júnior / Pleno / Sênior) · Pontos fortes e fracos, com evidências.
  • Seja direto, sem elogios exagerados · Separe "consegue entregar porque controla bem a IA" de "entende os fundamentos sozinho".
  • Se encontrar keys/secrets no histórico → alerte para rotacionar imediatamente (informe o tipo, não o valor).

3. Teste (se o usuário quiser saber se é realmente fraco)

  • 2 rodadas, cada uma com 4 perguntas via AskUserQuestion · Problemas baseados em situações reais de trabalho do usuário (stack que ele usa).
  • Misture 2 tipos: Vê o sintoma → diz a causa e Explica o mecanismo por trás · Opções com tamanhos semelhantes, sem dar a resposta.
  • Informe as regras: não pergunte à IA · Se não souber, responda "não sei".
  • Dê a resposta de cada pergunta com breve explicação e depois resuma o padrão (ex: sintomas 4/4, mecanismos 0/4).

4. Salário e carreira

  • Faça WebSearch modo extended com várias consultas simultâneas (TH + EN, ano atual) · Sempre cite as fontes.
  • Separe AI/ML Engineer (cria modelos) de AI Application Engineer (usa IA em aplicativos) · Faixas salariais muito diferentes.
  • Pense amplamente: liste 8–10 carreiras que combinem com habilidades + personalidade + crescimento (não só técnicas: consultor, pré-vendas, educador, produto EdTech, freelancer) · Depois reduza para as 3 mais adequadas + até 5 carreiras secundárias como tags · Carreiras "ainda não adequadas" podem ser citadas no chat, mas não na página.
  • Deve haver uma recomendação clara e única de direção (com base no objetivo da entrevista), acompanhada de um plano em 3 etapas.
  • Na página web, exiba salário como * por padrão · Mostre o número apenas se o usuário solicitar.

5. Entrevista

Chame a skill grilling (ou grill-me) e faça perguntas em rodadas via AskUserQuestion: Motivo pelo qual quer seguir aquela carreira · Experiência com pessoas/clientes fora do chat · Prazo · Projetos existentes (próprios ou da empresa) · Horas livres por semana · Definição de sucesso · Critérios para continuar/parar.

  • Respostas contraditórias ou que não respondem à pergunta → pergunte novamente.
  • Aponte padrões observados (ex: quando não é forçado a escolher, responde "aceito tudo") · Discorde educadamente, mas deixe o usuário decidir.
  • Termine com um resumo do entendimento comum e aguarde confirmação do usuário antes de inserir na página.

6. Criação da página web

  1. Copie templates/onepage.html para o scratchpad e edite apenas o JSON dentro de <script id="profile"> · Todo texto deve estar como {"th":…,"en":…}.
  2. Artifact → quickstart (intent other) na primeira vez, depois publique · ícone profile.
  3. Ajuste conforme feedback usando Edit + publique o mesmo arquivo (mesma URL).

Regras de design (baseadas em feedback de usuários reais · Não viole)

TópicoFaçaNão faça
Layout da páginaColuna única, leitura de cima para baixo · Identidade → 01 Habilidades → 02 Modo de trabalhar → 03 Crescimento → 04 Próximos passos · Largura até 1600pxSidebar lateral · Painel escuro diferente dos demais · Largura fixa estreita
Próximos passos (04)Caixa "Recomendação" com 1 recomendação + motivo em 1 frase + plano em 3 etapas · Cards das 3 carreiras, contendo apenas: prontidão / adequação / lacunas · Tag ★ Recomendado no canto superior direito do card escolhido · "Também possível" como tags em linha · "O que fazer primeiro" com no máximo 4 itensTabela longa de carreiras · Tags de etapas/primeiros passos/salário nos cards · Informação duplicada do plano de 3 etapas (usuários disseram que "polui")
CoresTodos os painéis usam o mesmo conjunto (fundo branco, bordas finas) · Azul = suave/melhora · Dourado = difícil/meta · Vermelho = cuidado/agoraMuitos tons misturados
Aviso sobre fontes dos dadosCaixa no topo, listando todas as fontes + o que não foi contado + "Avaliação por IA, não certificação"Esconder a fonte no final da página
IdiomaTailandês como padrão + botão TH/EN · Use they/them ou evite pronomes em inglêsAdivinhar gênero pelo nome
Compreensível para terceirosLinguagem simples · Comparações como "metade", "o dobro", "um terço"Nomes de projetos internos · Números de perguntas da entrevista (Q20) · Números brutos sem unidade ("43 vezes", contagem de prompts) · Jargões como "502 Traefik"
HabilidadesRadar + tags em 3 níveis (Destaque/Médio/Precisa melhorar) na seção de habilidades · Soft e Hard lado a lado, itens numerados (01–) com tag de evidência · Hard inclui nomes de ferramentasBarras de nível ao lado de traços de personalidade (usuários não entendem o que "cheio" significa) · Cards com alturas diferentes
PersonalidadeNomeie como soft skills que RH usa · Um nome de persona + uma frase · Estilo como barra de dois polos · "Traços de personalidade a serem observados" em caixa separadaInserir resultado do teste como painel na página (usuários pediram para remover)
Horas de trabalhoGráfico de horas iniciando às 06:00 · Dias da semana como % do total de trabalho, com linha explicativa sobre o que é %Eixo com número de ocorrências
CrescimentoEscada clicável, um degrau por vez · Altura = nível de habilidade (com nome do nível na barra) · Tag "▼ Você está aqui" · Cada degrau: o que faz bem / ainda erra / ponto de virada · "Comparado ao degrau anterior" apenas em meses com dados suficientes · tokens apenas nos degraus com transcript · Último degrau é a meta (linha tracejada dourada)Gráfico de contagem de prompts por mês (usuários não entendem) · Mostrar todos os detalhes de todos os degraus de uma vez
Salário* + explicação na caixa de aviso e no rodapéNúmero do salário sem solicitação
PrivacidadeSem keys, IPs, hostnames, emails · Números negativos escritos de forma não expositiva ("já colocou key em lugar indevido")Publicar/enviar página de perfil real para o público sem perguntar

Arquivos na skill

  • scripts/collect.py · Coleta números de uma única máquina (prompts mensais, comportamentos, horas/dia, tokens, timestamps) · Não envia texto.
  • scripts/merge.py · Combina várias máquinas → metrics.json (mensal, enough_data, % de horas iniciando às 06:00, % dias, horas trabalhadas manualmente vs. horas com IA, tokens).
  • templates/onepage.html · Página web que renderiza a partir de um único JSON · Dados no arquivo são exemplos fictícios.

Mapeamento de métricas → conteúdo da página

metrics.jsonOnde usar
hours_pct_from_6am[].pcthoursPctFrom6am (24 valores, ordenados a partir das 06:00)
weekday_pctweekdayPct
late_night_pcthoursNote ex: "quase 1/3 do trabalho ocorre após as 21h"
monthly[*] com enough_datastages[i].compare.items (comparação com estágio anterior) · stages[i].peak/hot mês mais intenso
tokens[*]stages[i].tokens (apenas meses com dados) · Informe a proporção de cache read
hands_on_hours / ai_working_hoursResuma no chat "trabalho manual ~X h/semana · IA trabalhando ~Y h/semana"
secrets_pasted > 0Alerta no chat + "Traços de personalidade a serem observados" + primeiro item de acts

Seção JSON 04 no template

  • rec · title, reason, phases[] (when, t, d) recomendação em 3 etapas.
  • paths[] · 3 carreiras: tag, title, ready (0–100), fits, gap, pick: true para a recomendada, gold: true para carreira própria/founder.
  • also[] · Nomes de carreiras secundárias ≤5 (apenas texto).
  • acts[] · ≤4 itens (t, d).

Habilidades Relacionadas