Pular para o conteúdo

Enviar e ler o seu resultado

Enviar um caso abre um pull request a partir do seu fork, registra o envio com o Fito, avalia o seu trabalho e escreve o resultado no seu perfil. É um comando só, e é seguro rodar mais de uma vez.

Esta página supõe que você já trabalhou em um caso e quer entregá-lo. Se você ainda não abriu nenhum, comece em Abrir e trabalhar um caso.

Quatro coisas precisam ser verdade, e as duas primeiras são as que travam as pessoas.

  • Você está logado no Fito pelo terminal. Rode /fito-login se não estiver.
  • A sua conta Fito tem uma identidade do GitHub vinculada, e o seu gh local está autenticado como essa mesma conta. Veja Vincule o GitHub antes de enviar abaixo.
  • O seu trabalho está commitado na branch de trabalho do caso. O comando sobe o que está commitado, e mais nada.
  • O caso ainda está aberto em ~/.fito/cases/<case-id>/. Se você apagou o checkout, abra o caso de novo primeiro.

O artefato de um envio é um pull request, então o Fito precisa saber qual conta do GitHub é sua. Vincule uma vez, na aplicação web: entre e escolha Continue with GitHub, usando a mesma conta em que o seu gh local está autenticado.

O /fito-submit verifica isso antes de subir qualquer coisa. Duas recusas podem aparecer, e elas querem dizer coisas diferentes:

Your Fito account has no linked GitHub identity, which is required to submit.
Link your GitHub account to Fito, then submit again.

Nada está vinculado. Vá vincular na aplicação web.

GitHub account mismatch: your Fito-linked account is @alice, but gh is
authenticated as @alice-work.
Run 'gh auth login' as @alice, or link @alice-work to your Fito account, then
submit again.

Duas contas, e o Fito não vai adivinhar qual você quis dizer. Mova um dos dois lados para bater com o outro.

Se o próprio gh não estiver pronto, aparece uma terceira mensagem — GitHub CLI is not ready — install gh and run 'gh auth login'. — que é assunto de Entrar pelo terminal, e não um problema de conta Fito.

  1. Commite o seu trabalho na branch de trabalho em ~/.fito/cases/<case-id>/.

  2. Na sua sessão do pi, rode o comando de envio:

    /fito-submit <case-id>

    Troque <case-id> pelo id do caso — a última parte da URL /cases/<id>, o mesmo id com que você abriu.

  3. Acompanhe. Ele sobe a sua branch para o seu fork, abre um pull request contra a branch alvo de envio do caso e registra o envio. Ele imprime a URL do pull request e uma linha nomeando o envio:

    Submission recorded with Fito (id: 019f93a1-12a1-72e8-a369-0bff38814ba4)
  4. Responda o quiz, se o caso tiver um. Nem todo caso tem.

  5. Leia o retorno por critério que ele imprime no final.

Confirme que deu certo: a URL do pull request abre no GitHub, e o resumo nomeia uma proficiência para cada critério.

O /fito-submit reaproveita um pull request aberto em vez de abrir um segundo, e registrar o mesmo pull request de novo não muda nada. Rodar de novo reavalia o seu trabalho e substitui o resultado registrado.

Isso importa quando algo falha no meio. Se o pull request abriu mas o registro não, você recebe:

Your pull request is open:
https://github.com/...
…but recording the submission with Fito failed: <reason>
Re-run /fito-submit to retry — it reuses this PR.

Rode de novo. Ele pega o pull request existente e tenta o registro outra vez.

Um bloco por critério de rubrica, e um por questão de quiz. Cada um traz:

  • o critério e o componente de conhecimento que ele avalia, pelo nome e não pelo id cru
  • o nível de Bloom que aquele critério mira
  • o resultado: para um critério ou uma questão aberta, a nota sobre 3 e o rótulo correspondente; para uma questão de múltipla escolha, correta ou incorreta
  • a proficiência registrada para aquele componente — o nível de Bloom com nota 2 ou 3, NOT_ACHIEVED com 0 ou 1
  • um link para a área de Conhecimento, para você ir ler o componente
  • uma frase dizendo por quê

Um critério cujo método de avaliação é human não pode ser avaliado localmente. Ele volta marcado como precisando de revisão humana, e isso é destacado para você saber que aquela parte do quadro continua aberta.

Para saber como a nota de 0 a 3 é obtida, veja Como um caso é avaliado.

O seu perfil guarda a maior proficiência por componente de conhecimento — entre a rubrica e o quiz, e entre todas as tentativas que você fizer. Um segundo envio que pontue menos em um componente não derruba o primeiro.

É por isso que o relatório de cada envio — o resumo no seu terminal e o cartão dele na página do caso — cobre só aquele envio, e o /competencies na aplicação web é o registro oficial. Leia o /competencies quando quiser saber onde você realmente está.

Entre na aplicação web e abra o caso em /cases/<id>. Uma seção Competencies assessed fica na capa, e o que ela guarda é só seu — mais ninguém vê a sua situação. O título fica na capa para qualquer visitante, logado ou não; só as suas próprias linhas aparecem ali.

Ela é agrupada por competência, e não por envio. Cada linha traz:

Coluna O que ela guarda
Competency A competência que este caso avaliou, com link para o seu detalhamento
Technologies As tecnologias que exigem aquela competência
Proficiency Level O seu agregado calculado, o mesmo que o /competencies mostra: a etiqueta de nível, o Proficiency achievement como porcentagem e a linha de cobertura

O ícone ao lado da etiqueta e o ícone ao lado da porcentagem mostram, cada um, a conta daquela linha. O ícone no cabeçalho Proficiency Level dá os pontos que cada nível soma.

Só envios avaliados alimentam a seção, e duas frases diferentes ocupam o lugar da tabela enquanto ela está vazia. Antes do seu primeiro envio avaliado, a seção diz “Your assessments for this case will appear here once you submit a solution.”

Quando você já foi avaliado e a tabela continua vazia, ela diz “Your submission was evaluated, but no competency covers what this case assessed yet. Your results are recorded and will appear here once one does.” Nada se perde: a sua proficiência é registrada por componente de conhecimento de qualquer forma, e as linhas aparecem assim que uma competência nomear esses componentes.

Uma competência pode aparecer como Not assessed yet mesmo depois do envio — isso acontece quando o único critério que a toca ainda espera revisão humana.

A página do caso também guarda o relatório de cada envio seu que foi avaliado. Entre na aplicação web e abra o caso em /cases/<id>: uma seção Your submissions fica depois do texto do próprio caso e antes de Usage, e o sumário da página tem um link para ela. Como a Competencies assessed, ela é só sua, e não aparece até um envio seu ser avaliado.

Ela traz um cartão por envio, do mais novo para o mais antigo. O cartão mais novo começa aberto e os mais antigos começam fechados. Selecione o topo de um cartão para abri-lo ou fechá-lo. Selecione o título da seção para recolher a seção inteira; recolhida, ela mantém uma linha sobre o seu envio mais recente.

O topo de cada cartão traz a data, a etiqueta Evaluated e uma linha de resumo como “Rubric: 2 of 3 criteria met · Quiz: 1 of 2 correct”. Um critério é atendido com nota 2 ou 3. Um resultado que ainda espera revisão humana é contado à parte e fica fora do total: “Rubric: 1 of 2 criteria met, 1 awaiting review”. Abaixo do topo ficam um link para o pull request e a versão do caso contra a qual você enviou.

Dentro do cartão, uma tabela Rubric e uma tabela Quiz listam cada resultado:

Coluna O que ela guarda
Criterion ou Question O id do critério tornado legível, com o modo como ele foi verificado logo abaixo — applies-a-binding-fix vira Applies a binding fix. No quiz, a pergunta e o tipo dela
Knowledge component O componente que ele avalia, com link para a página dele e a etiqueta do tipo
Result A nota em palavras, e a nota sobre 3
Level recorded A proficiência registrada: o nível de Bloom, ou Not achieved com o nível que a linha mira

O motivo do revisor fica abaixo de cada linha. As palavras vêm da nota:

Nota Resultado
0 Not met
1 Partly met
2 Met
3 Met well
Ainda nenhuma Awaiting review

Uma questão de múltipla escolha diz Correct ou Incorrect, sem nota e sem motivo. Uma resposta escrita aparece como um critério. O texto da pergunta vem do quiz atual do caso, então uma pergunta que uma versão mais nova do caso removeu mostra o id dela no lugar. A seção nunca mostra a resposta de uma pergunta nem as alternativas dela.