Suivi des Candidatures
Utilisez un tableau de bord local et portable comme source unique de vérité pour les enregistrements de candidatures. Laissez l'utilisateur s'exprimer naturellement ; résolvez le bon tableau, préservez les informations existantes, et appliquez des modifications déterministes et sans conflit.
Politique Linguistique
Gardez l'implémentation de la compétence, les instructions de l'Agent, les références, les scripts, les schémas, les commentaires et les tests en anglais. Traitez les noms et définitions anglais comme canoniques.
Les surfaces destinées à l'utilisateur peuvent être localisées. README.md et les fichiers front-end assets/dashboard-* incluent actuellement du chinois et de l'anglais. Stockez des codes neutres pour les étapes et les lots afin que la langue d'affichage ne change jamais le sens sous-jacent.
Références Requises
Lisez uniquement la référence nécessaire pour l'opération en cours :
- Lisez references/data-model.md avant d'enregistrer, mettre à jour, valider, résumer ou rappeler.
- Lisez references/deployment.md avant d'installer, d'activer, de localiser, de déplacer, de réparer ou de démarrer un tableau.
- Lisez references/board-ui.md avant de reconstruire ou de modifier le tableau de bord, les lanceurs, le serveur local ou la logique de visualisation.
Résoudre d'Abord le Tableau
Désignez le répertoire sélectionné par BOARD_DIR.
Utilisez python3 sur macOS/Linux. Sous Windows, remplacez python3 dans les commandes ci-dessous par py -3 lorsque disponible, sinon python.
-
Si l'utilisateur fournit un chemin, inspectez-le :
python3 <skill-dir>/scripts/board_locator.py inspect --board-dir <path>S'il contient un
data.jsonvalide hérité mais manque le marqueur, expliquez qu'un fichier d'identité portable et non sensible sera ajouté, puis exécutez :python3 <skill-dir>/scripts/board_locator.py mark --board-dir <path> -
Sinon, découvrez les tableaux marqués :
python3 <skill-dir>/scripts/board_locator.py discover -
Interprétez la découverte exactement :
- Code de sortie 0 : utilisez l'unique tableau valide et rapportez son chemin et le nombre d'enregistrements.
- Code de sortie 4 : demandez un chemin existant ou une permission explicite pour créer un nouveau tableau.
- Code de sortie 5 : montrez chaque candidat et exigez que l'utilisateur choisisse.
Ne choisissez jamais par date de modification, nombre d'enregistrements ou conjecture. Ne créez jamais un tableau simplement parce que la découverte a échoué. Ne stockez jamais un registre global de chemins absolus dans le répertoire personnel de l'utilisateur.
Workflow de Données Sécurisé
Pour chaque lecture ou écriture :
-
Résolvez
BOARD_DIR. -
Obtenez la date réelle courante lorsque les dates affectent l'opération : exécutez
date +%Y-%m-%dsur macOS/Linux ou(Get-Date).ToString('yyyy-MM-dd')dans Windows PowerShell. -
Prenez un snapshot :
python3 <skill-dir>/scripts/data_store.py snapshot \ --data <BOARD_DIR/data.json> -
Préservez le
boardTitleretourné, lelangoptionnel, lesstageLevelsoptionnels, tous les enregistrements, tous les champs d'enregistrement inconnus mais valides, et l'ETag retourné. -
Pour une écriture, créez un fichier JSON candidat et remplacez-le en toute sécurité :
python3 <skill-dir>/scripts/data_store.py replace \ --data <BOARD_DIR/data.json> \ --input <candidate.json> \ --expected-etag <etag> -
Traitez le code de sortie 3 comme un conflit d'édition concurrent. Prenez un nouveau snapshot, réappliquez uniquement la modification demandée par l'utilisateur, et réessayez. Ne forcez jamais une écriture obsolète.
-
Confirmez le succès uniquement après la réussite de l'outil.
N'écrivez jamais data.json directement. Ne chargez jamais d'exemples d'apprentissage sans confirmation explicite de l'utilisateur ou ne les traitez pas comme de vraies candidatures. Ne modifiez jamais les fichiers du moteur déployé lors d'une opération de données uniquement.
Opérations Principales
Enregistrer ou Mettre à Jour une Candidature
- Lisez references/data-model.md.
- Faites correspondre un enregistrement existant par entreprise et poste. Si la cible est ambiguë, demandez à l'utilisateur de choisir.
- Pour un nouvel enregistrement, exigez l'entreprise et le poste. Demandez une fois les détails optionnels manquants — canal, portail de candidature, ville et lot de recrutement — puis attendez la réponse de l'utilisateur ou une demande explicite de passer avant d'enregistrer.
- Insérez un nouvel enregistrement au début de
recordsafin que les nouvelles candidatures apparaissent en premier par défaut. Préservez la position existante dans le tableau lors de la mise à jour d'un enregistrement. - Pour un enregistrement existant, modifiez uniquement les champs mentionnés par l'utilisateur.
- Faites progresser en ajoutant un événement ; ne maintenez jamais un champ de statut séparé.
- Pour une étape personnalisée inédite, préservez son texte exact et ajoutez une règle
stageLevels. Utilisez le placement demandé par l'utilisateur ; sinon, par défaut, placez-la à un niveau distinct immédiatement avantk_hr. - Gardez
notevide sauf si l'utilisateur demande explicitement d'y écrire quelque chose. - Utilisez le workflow de données sécurisé et rapportez l'enregistrement et l'événement exacts modifiés.
N'inventez jamais une entreprise, un poste, une date, un canal, un lieu, un salaire, un résultat ou un tour d'entretien.
Afficher un Résumé Textuel des Progrès
- Lisez references/data-model.md.
- Prenez un snapshot sécurisé sans modifier les données.
- Placez d'abord les rappels datés éligibles d'aujourd'hui jusqu'aux sept prochains jours.
- Regroupez les enregistrements en : en cours, avec offre, terminés et pas encore postulé.
- Identifiez les enregistrements en cours obsolètes et les jalons à venir.
- Terminez par une action concrète à effectuer ensuite.
Ne reconstruisez pas le HTML sauf demande explicite de l'utilisateur.
Ouvrir ou Reconstruire le Tableau Visuel
- Lisez references/deployment.md et references/board-ui.md.
- Résolvez et validez le tableau existant avant de toucher aux fichiers du moteur.
- Normalement, dites à l'utilisateur de démarrer le tableau et d'ouvrir
http://127.0.0.1:8770/. - Recopiez l'ensemble du moteur front-end uniquement lorsqu'un fichier du moteur est manquant ou que l'utilisateur demande explicitement de reconstruire ou mettre à jour le moteur.
- Préservez
data.jsonet toutes les sauvegardes.
Installer ou Activer
Lisez references/deployment.md et suivez son workflow de découverte d'abord. L'installation de la compétence et la création d'un nouveau tableau sont des actions distinctes. La création d'un tableau nécessite une intention explicite de l'utilisateur.
Règles Strictes
- Utilisez uniquement un
BOARD_DIRrésolu et marqué. - Ne créez pas silencieusement un tableau de remplacement.
- Ne scannez pas récursivement le répertoire personnel de l'utilisateur.
- Ne stockez pas un registre global de chemins.
- Utilisez
data_store.pypour toute écriture de données côté Agent. - Préservez les données non mentionnées et les champs existants.
- Gardez
notevide sauf demande explicite. - Utilisez des codes d'étape et de lot neutres depuis
references/data-model.md. - Utilisez la date réelle courante ; ne vous fiez pas au calcul mental de la date.
- Si l'autorisation d'écriture de fichier est indisponible, expliquez les étapes manuelles exactes et ne prétendez jamais qu'une écriture a réussi.
- Ne combinez pas une mutation de données avec une reconstruction du moteur sauf si l'utilisateur demande explicitement les deux.
- N'écrasez pas
data.json,.data.backup.*.jsonou.job-tracker-board.jsonlors du déploiement ou de la mise à jour des fichiers du moteur.
Ressources Incluses
scripts/board_locator.py: identifier, marquer et découvrir en toute sécurité les répertoires de tableaux.scripts/data_store.py: snapshot, validation, vérification des conflits, remplacement atomique et sauvegarde des données.assets/dashboard-template.html,dashboard.cssetdashboard-*.js: modules de tableau de bord localisés, sans dépendances.assets/server.py: serveur local en boucle locale uniquement et API de données validée.assets/start.command/assets/stop.command: lanceurs macOS.assets/start-board.bat/assets/stop-board.batavec assistants PowerShell correspondants : lanceurs Windows avec vérifications de santé et journaux de diagnostic.assets/data.json: graine vide pour un nouveau tableau demandé explicitement uniquement.tools/: utilitaires déterministes de régression de croisement pour le diagramme de Sankey.