@inprogress/ai-core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: advanced-skill-creator
3
+ description: Cree ou met a jour une skill avancee avec des declencheurs clairs, une procedure et des fichiers de support.
4
+ ---
5
+
6
+ # advanced-skill-creator
7
+
8
+ ## Objectif
9
+ Transformer une idee brute (ou des notes) en Skill prete pour la production avec :
10
+ - Des declencheurs clairs ("Utiliser cette skill quand...")
11
+ - Des etapes de procedure explicites
12
+ - Un contrat d'entree/sortie
13
+ - Des fichiers de support optionnels mais structures : rules.md, examples.md, checklist.md, templates/*
14
+ - Un minimum d'ambiguite et des conventions coherentes
15
+
16
+ ## Quand utiliser
17
+ Utiliser cette skill quand :
18
+ - Vous voulez creer un nouveau dossier de skill
19
+ - Vous voulez faire evoluer une skill existante
20
+ - Vous voulez des skills coherentes et partageables en equipe
21
+
22
+ ## Entrees (a demander ou deduire)
23
+ L'utilisateur devrait fournir (si absent, deduire des valeurs raisonnables et expliciter les hypotheses) :
24
+ - Nom de la skill (kebab-case) et description en une ligne
25
+ - Perimetre : problemes couverts / non couverts
26
+ - Taches ou scenarios typiques (2 a 5)
27
+ - Contexte technique cible (langage/framework/outils) si pertinent
28
+ - Attentes de sortie (ce que "termine" signifie)
29
+ - Contraintes ou politiques fortes (securite, style, conventions du repo)
30
+
31
+ ## Sorties (obligatoires)
32
+ Toujours produire :
33
+ 1) Plan de dossier : `.agent_env/skills/<skill-name>/...`
34
+ 2) `SKILL.md`
35
+ 3) `checklist.md`
36
+
37
+ Produire en option (si utile ou demande) :
38
+ - `rules.md` (contraintes fortes)
39
+ - `examples.md` (exemples guides)
40
+ - `templates/*.md` (artefacts copier/coller pour la procedure)
41
+
42
+ ## Procedure (a suivre strictement)
43
+ 1) **Normaliser le nom de la skill**
44
+ - Verifier le kebab-case
45
+ - Proposer une description concise
46
+
47
+ 2) **Definir le perimetre**
48
+ - Puces dans le perimetre / hors perimetre
49
+ - Identifier 2 a 5 scenarios centraux
50
+
51
+ 3) **Ecrire les declencheurs**
52
+ - Liste "Utiliser cette skill quand..."
53
+ - Liste "Ne PAS utiliser cette skill quand..."
54
+
55
+ 4) **Definir le contrat d'entree/sortie**
56
+ - Entrees (obligatoires vs optionnelles)
57
+ - Sorties (artefacts explicites + formats)
58
+ - Niveau de qualite / definition de termine
59
+
60
+ 5) **Concevoir la procedure avancee**
61
+ - 6 a 10 etapes max
62
+ - Inclure des points de decision et le comportement "si info manquante"
63
+ - Referencer explicitement `rules.md`, `templates/*` et `checklist.md` quand pertinent
64
+
65
+ 6) **Creer les fichiers de support**
66
+ - `rules.md` : uniquement invariants et non-negociables
67
+ - `examples.md` : 2 a 6 exemples courts max (bons modeles)
68
+ - `templates/*` : seulement si cela reduit l'effort repetitif
69
+
70
+ 7) **Finaliser avec la checklist**
71
+ - Doit etre actionnable
72
+ - Doit inclure la validation (tests/lint, etc. si pertinent)
73
+
74
+ 8) **Format de sortie**
75
+ - Fournir le contenu final de chaque fichier dans des blocs de code separes.
76
+ - Ne pas ajouter de narration inutile ; rester directement implementable.
77
+
78
+ ## Conventions a suivre
79
+ - Garder `SKILL.md` leger : orchestration + contrats + procedure.
80
+ - Mettre les regles detaillees dans `rules.md`, pas dans `SKILL.md`.
81
+ - Utiliser des chemins relatifs au dossier de la skill pour les references de fichiers.
82
+ - Preferer un langage deterministe : DOIT / DEVRAIT / PEUT.
83
+ - Eviter les exemples enormes ; rester court et a fort signal.
84
+
85
+ ## Si des informations manquent
86
+ - Faire des hypotheses raisonnables.
87
+ - Lister clairement les hypotheses en haut du `SKILL.md` genere, sous une section "Hypotheses".
88
+ - Ajouter une courte section "Questions a confirmer plus tard" (max 5 questions), tout en livrant la skill.
@@ -0,0 +1,26 @@
1
+ # advanced-skill-creator - Liste de controle (avant livraison)
2
+
3
+ ## Structure de la skill
4
+ - [ ] Le nom du dossier est en kebab-case et correspond au nom de la skill dans SKILL.md
5
+ - [ ] SKILL.md existe et joue le role d'orchestrateur (pas un depot de details)
6
+ - [ ] checklist.md existe et est actionnable
7
+
8
+ ## Exigences niveau 2
9
+ - [ ] Les declencheurs "Quand utiliser" sont explicites (>= 3 puces)
10
+ - [ ] Les declencheurs "Ne PAS utiliser" sont explicites (>= 2 puces)
11
+ - [ ] Le perimetre inclut ce qui est dans le perimetre et hors perimetre
12
+ - [ ] Les entrees sont separees en obligatoires vs optionnelles
13
+ - [ ] Les sorties sont des artefacts explicites avec leurs formats
14
+ - [ ] La procedure contient 6 a 10 etapes et inclut des points de decision
15
+ - [ ] La procedure reference explicitement les fichiers de support (rules/templates/checklist)
16
+
17
+ ## Fichiers de support (si presents)
18
+ - [ ] rules.md ne contient que des invariants et des exigences non negociables
19
+ - [ ] examples.md contient 2 a 6 exemples concis (pas de longs blocs verbeux)
20
+ - [ ] Les templates sont nommes par objectif et faciles a copier/coller
21
+
22
+ ## Qualite
23
+ - [ ] Aucune regle contradictoire entre SKILL.md et rules.md
24
+ - [ ] Aucune hypothese specifique au repo sans mention explicite des hypotheses
25
+ - [ ] Definition de termine claire
26
+
@@ -0,0 +1,12 @@
1
+ # advanced-skill-creator - Regles (contraintes fortes)
2
+
3
+ - DOIT generer des skills partageables entre depots (destinees a etre committees).
4
+ - DOIT utiliser le kebab-case pour les noms de dossiers de skills.
5
+ - DOIT inclure : declencheurs, perimetre, contrat I/O, procedure et references checklist.
6
+ - DOIT garder `SKILL.md` centre sur l'orchestration ; les details lourds vont dans les fichiers de support.
7
+ - DOIT eviter les allers-retours longs : produire une v1 exploitable meme avec des infos partielles.
8
+ - NE DOIT PAS inventer des commandes specifiques au repo ; si necessaire, indiquer de suivre AGENTS.md.
9
+ - DEVRAIT creer des templates seulement quand ils reduisent le travail repetitif (eviter le spam de templates).
10
+ - DEVRAIT inclure une section "Ne PAS utiliser cette skill quand" pour eviter les mauvais usages.
11
+ - DEVRAIT inclure "Cas limites / modes d'echec" quand le domaine est risque ou ambigu.
12
+
@@ -0,0 +1,59 @@
1
+ # <skill-name>
2
+
3
+ ## Description
4
+ <description en une ligne>
5
+
6
+ ## Hypotheses (si necessaire)
7
+ - <hypothese 1>
8
+ - <hypothese 2>
9
+
10
+ ## Quand utiliser
11
+ Utiliser cette skill quand :
12
+ - ...
13
+ - ...
14
+ - ...
15
+
16
+ Ne PAS utiliser cette skill quand :
17
+ - ...
18
+ - ...
19
+
20
+ ## Perimetre
21
+ Dans le perimetre :
22
+ - ...
23
+ - ...
24
+
25
+ Hors perimetre :
26
+ - ...
27
+ - ...
28
+
29
+ ## Entrees
30
+ Obligatoires :
31
+ - ...
32
+
33
+ Optionnelles :
34
+ - ...
35
+
36
+ ## Sorties
37
+ Vous DEVEZ produire :
38
+ - <artefact 1> (format : ...)
39
+ - <artefact 2> (format : ...)
40
+
41
+ Vous POUVEZ aussi produire :
42
+ - ...
43
+
44
+ ## Procedure
45
+ Suivre strictement ces etapes :
46
+ 1) ...
47
+ 2) ...
48
+ 3) Si <condition>, alors ...
49
+ 4) Charger `rules.md` et appliquer les contraintes.
50
+ 5) Utiliser les templates de `templates/` si vous produisez des artefacts.
51
+ 6) Avant finalisation, executer `checklist.md`.
52
+
53
+ ## Cas limites / modes d'echec
54
+ - ...
55
+ - ...
56
+
57
+ ## Questions a confirmer plus tard (max 5)
58
+ - ...
59
+
@@ -0,0 +1,11 @@
1
+ # <skill-name> - Liste de controle
2
+
3
+ ## Avant livraison
4
+ - [ ] ...
5
+ - [ ] ...
6
+ - [ ] ...
7
+
8
+ ## Validation (si code)
9
+ - [ ] Les tests passent (suivre AGENTS.md)
10
+ - [ ] Le lint/format passe (suivre AGENTS.md)
11
+ - [ ] Pas de changement cassant sans note explicite
@@ -0,0 +1,21 @@
1
+ # <skill-name> - Exemples
2
+
3
+ ## Exemple 1 (bon)
4
+ Entree :
5
+ - ...
6
+
7
+ Sortie :
8
+ - ...
9
+
10
+ Notes :
11
+ - ...
12
+
13
+ ## Exemple 2 (bon)
14
+ Entree :
15
+ - ...
16
+
17
+ Sortie :
18
+ - ...
19
+
20
+ Notes :
21
+ - ...
@@ -0,0 +1,6 @@
1
+ # <skill-name> - Regles (contraintes fortes)
2
+
3
+ - DOIT ...
4
+ - DOIT ...
5
+ - DEVRAIT ...
6
+ - NE DOIT PAS ...
@@ -0,0 +1,10 @@
1
+ # Utilisation des templates
2
+
3
+ Creer des templates uniquement quand :
4
+ - La skill produit regulierement la meme structure d'artefact, OU
5
+ - Une structure copier/coller reduit les erreurs et fait gagner du temps.
6
+
7
+ Nommage :
8
+ - Utiliser le kebab-case et nommer selon l'objectif : `endpoint-rest.md`, `test-plan.md`, `story.md`.
9
+
10
+ Garder les templates courts et centres sur la tache.
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: i18next-translation
3
+ description: Maintient et fait evoluer les traductions i18next dans des projets React/JavaScript/TypeScript.
4
+ ---
5
+
6
+ # i18next-translation
7
+
8
+ ## Hypotheses
9
+ - Langue source par defaut : `en`.
10
+ - Les langues cibles sont deduites des ressources i18next existantes si non precisees.
11
+ - Le perimetre doit rester minimal et limite aux fichiers necessaires.
12
+ - L'architecture i18next existante (namespaces vs monolithique) doit etre preservee.
13
+
14
+ ## Utiliser cette skill quand
15
+ - Vous ajoutez des cles i18next (`add_keys`) dans une feature React/JS/TS.
16
+ - Vous migrez des textes UI en dur vers i18next (`migrate_hardcoded`).
17
+ - Vous refactorez des namespaces/slices i18next (`refactor_namespaces`).
18
+ - Vous auditez la parite multi-langues et la securite des interpolations (`audit_only`).
19
+
20
+ ## Ne PAS utiliser cette skill quand
21
+ - La demande concerne seulement la traduction linguistique sans modification technique du code/ressources.
22
+ - Le projet n'utilise pas i18next.
23
+ - Une migration d'architecture globale est demandee sans validation explicite.
24
+
25
+ ## Perimetre
26
+ Dans le perimetre :
27
+ - Detection de la structure i18next du projet.
28
+ - Ajout/reorganisation de cles avec nommage semantique stable.
29
+ - Migration de textes en dur vers `t(...)` ou `Trans`.
30
+ - Verification de la parite structurelle entre langues et des placeholders.
31
+
32
+ Hors perimetre :
33
+ - Refonte complete de l'architecture i18n sans demande explicite.
34
+ - Suppression de cles existantes sans confirmation explicite.
35
+ - Validation linguistique humaine finale (qualite stylistique des traductions).
36
+
37
+ ## Entrees
38
+ Obligatoires :
39
+ - Type de tache : `add_keys` | `migrate_hardcoded` | `refactor_namespaces` | `audit_only`.
40
+ - Perimetre (fichiers/dossiers) ou autorisation de deduction automatique minimale.
41
+
42
+ Optionnelles :
43
+ - Langue source (par defaut `en`).
44
+ - Langues cibles.
45
+ - Contraintes de modification des traductions existantes.
46
+ - Conventions projet (camelCase/snake_case, pluralisation, namespaces partages).
47
+
48
+ ## Sorties
49
+ - Modifications des fichiers i18n et du code d'usage dans le perimetre.
50
+ - Rapport final avec :
51
+ 1. structure detectee,
52
+ 2. strategie namespace,
53
+ 3. cles ajoutees/modifiees,
54
+ 4. mapping `ancien -> nouveau` (si migration),
55
+ 5. fichiers modifies,
56
+ 6. statut de validation (`ok` / `a_verifier`) et risques restants.
57
+
58
+ Definition de termine :
59
+ - Les memes chemins de cles existent dans toutes les langues cibles.
60
+ - Les placeholders/tokens sont preserves.
61
+ - Pas de nouveau `import { t } from "i18next"` dans les composants React.
62
+ - Pas de suppression de cles sans validation explicite.
63
+ - Checklist `checklist.md` completee.
64
+
65
+ ## Procedure
66
+ 1. Clarifier ou deduire les entrees minimales (type de tache, source/targets, perimetre, contraintes).
67
+ 2. Detecter la structure i18next existante (namespaces par langue, fichier monolithique, objet JS/TS).
68
+ 3. Identifier la strategie de reutilisation (namespace et cles existantes) avant toute creation.
69
+ 4. Planifier les changements avec mapping explicite (notamment `texte_en_dur -> cle`) si applicable.
70
+ 5. Modifier les ressources en langue source, puis reproduire les memes chemins dans toutes les langues cibles.
71
+ 6. Mettre a jour les points d'appel (`useTranslation`, `t`, `Trans`) sans changer l'architecture globale.
72
+ 7. Appliquer les invariants de `rules.md` et verifier les points de `checklist.md`.
73
+ 8. Produire le rapport final au format defini dans la section Sorties.
74
+
75
+ ## Fichiers de support
76
+ - Regles non negociables : `rules.md`
77
+ - Validation operationnelle : `checklist.md`
78
+
79
+ ## Questions a confirmer plus tard
80
+ - Quelles langues cibles doivent etre strictement maintenues a parite ?
81
+ - La modification de traductions existantes est-elle autorisee ?
82
+ - Quelle convention de nommage est obligatoire (camelCase/snake_case) ?
83
+ - Y a-t-il des scripts/tests i18n internes a lancer systematiquement ?
84
+ - Le perimetre doit-il inclure seulement l'interface React ou aussi le rendu cote serveur ?
85
+
86
+
87
+
@@ -0,0 +1,38 @@
1
+ # Liste de controle i18next-translation
2
+
3
+ ## Cadrage
4
+ - [ ] Type de tache confirme (`add_keys`, `migrate_hardcoded`, `refactor_namespaces`, `audit_only`).
5
+ - [ ] Perimetre des fichiers/dossiers confirme ou deduit de facon minimale.
6
+ - [ ] Langue source confirmee ou deduite (`en` par defaut).
7
+ - [ ] Langues cibles confirmees ou deduites.
8
+ - [ ] Contraintes de modification des traductions existantes clarifiees.
9
+
10
+ ## Detection de structure
11
+ - [ ] Structure i18next identifiee (namespaces par langue, monolithique, objet JS/TS).
12
+ - [ ] Namespaces et cles existantes candidates a la reutilisation inventoriees.
13
+ - [ ] Aucun changement d'architecture globale non demande.
14
+
15
+ ## Execution
16
+ - [ ] Mapping explicite `ancien -> nouveau` prepare pour migration de textes en dur.
17
+ - [ ] Nouvelles cles ajoutees d'abord en langue source.
18
+ - [ ] Memes chemins de cles reproduits dans toutes les langues cibles.
19
+ - [ ] Points d'appel migres vers `t(...)` / `Trans` selon le contexte.
20
+ - [ ] Aucun nouveau `import { t } from "i18next"` dans des composants React.
21
+
22
+ ## Validation
23
+ - [ ] Parite structurelle des chemins de cles validee entre langues.
24
+ - [ ] Placeholders/interpolations preserves sans alteration.
25
+ - [ ] Tokens markup preserves (si `Trans` utilise).
26
+ - [ ] Aucune suppression de cle sans validation explicite.
27
+ - [ ] Aucun texte UI en dur residuel dans le perimetre (si migration).
28
+ - [ ] Tests/lint i18n du projet executes si disponibles, sinon marque `a_verifier`.
29
+
30
+ ## Rapport final
31
+ - [ ] Structure detectee reportee.
32
+ - [ ] Strategie namespace (reutilises/crees) reportee.
33
+ - [ ] Cles ajoutees/modifiees listees.
34
+ - [ ] Mapping `ancien -> nouveau` fourni (si migration).
35
+ - [ ] Fichiers modifies listes.
36
+ - [ ] Resultats de validation (`ok` / `a_verifier`) et risques restants inclus.
37
+
38
+
@@ -0,0 +1,12 @@
1
+ # Regles non negociables
2
+
3
+ - Dans les composants React, preferer `useTranslation()`.
4
+ - Ne pas introduire `import { t } from "i18next"` dans des composants React.
5
+ - Hors composant, preferer passer `t` en parametre ou utiliser l'instance i18n du projet.
6
+ - Toute cle ajoutee doit exister dans toutes les langues cibles avec le meme chemin.
7
+ - Ne pas supprimer de cles existantes sans confirmation explicite.
8
+ - Preserver exactement les placeholders/interpolations (`{{name}}`, `{{count}}`, etc.).
9
+ - Preserver les tokens markup (`<bold>...</bold>`, etc.) utilises avec `Trans`.
10
+ - Ne pas introduire de namespaces/cles fourre-tout: `misc`, `temp`, `other`, `data`, `label_1`.
11
+ - Ne pas changer l'architecture i18next globale sans demande explicite.
12
+ - Garder la convention de nommage des cles deja adoptee par le projet (camelCase ou snake_case).
package/package.json ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "@inprogress/ai-core",
3
+ "version": "1.0.0",
4
+ "private": false,
5
+ "description": "Provides core functionalities for Iprogress Agency agents based on AGENT_ENV environment variable.",
6
+ "publishConfig": {
7
+ "access": "restricted"
8
+ },
9
+ "scripts": {
10
+ "postinstall": "node postinstall.js"
11
+ },
12
+ "files": [
13
+ "postinstall.js",
14
+ ".agent_env"
15
+ ]
16
+ }
package/postinstall.js ADDED
@@ -0,0 +1,29 @@
1
+ const fs = require("fs");
2
+ const path = require("path");
3
+
4
+ const agentEnv = process.env.AGENT_ENV;
5
+ if (!agentEnv) {
6
+ console.error("[agent-env-installer] AGENT_ENV is not defined.");
7
+ process.exit(1);
8
+ }
9
+
10
+ const targetRepo = process.env.INIT_CWD || process.cwd();
11
+ const sourceDir = path.join(__dirname, ".agent_env");
12
+ const targetDir = path.join(targetRepo, `.${agentEnv}`);
13
+ const gitignorePath = path.join(targetRepo, ".gitignore");
14
+
15
+ fs.rmSync(targetDir, { recursive: true, force: true });
16
+ fs.cpSync(sourceDir, targetDir, { recursive: true });
17
+
18
+ const entry = `.${agentEnv}`;
19
+ const currentGitignore = fs.existsSync(gitignorePath)
20
+ ? fs.readFileSync(gitignorePath, "utf8")
21
+ : "";
22
+
23
+ const lines = currentGitignore.split(/\r?\n/).filter(Boolean);
24
+ if (!lines.includes(entry)) {
25
+ const nextContent = currentGitignore.endsWith("\n") || currentGitignore.length === 0
26
+ ? `${currentGitignore}${entry}\n`
27
+ : `${currentGitignore}\n${entry}\n`;
28
+ fs.writeFileSync(gitignorePath, nextContent, "utf8");
29
+ }