Remove internal Gitea URLs, personal email, and add AI prompts to site
- Replace all homegit.gyozamancave.fr links with internal page links or plain text (no external repo exposure) - Replace piron.antoine@gmail.com with contact@example.com placeholder - Add prompts verbatim section to /transparence page (filter, synthesis, law-check prompts) via new src/lib/prompts.ts module Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -179,9 +179,8 @@ export default function ContributionsBrutes() {
|
||||
<p className="text-xs text-muted-foreground/60 font-mono pt-8 mt-8 border-t border-border/30">
|
||||
Contributions modérées selon le droit international des droits humains (DUDH · PIDCP · CEDH).{" "}
|
||||
<a
|
||||
href="https://homegit.gyozamancave.fr/billisdead/la-voix-du-peuple/src/branch/main/docs/PROMPTS_IA.md"
|
||||
href="/transparence"
|
||||
className="underline text-primary"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
Voir les critères de modération
|
||||
</a>
|
||||
|
||||
@@ -32,7 +32,7 @@ export default function LegalNotice() {
|
||||
{ label: "Nom", value: "Antoine Piron" },
|
||||
{ label: "Pseudonyme", value: "billisdead" },
|
||||
{ label: "Qualité", value: "Personne physique — exploitant à titre personnel" },
|
||||
{ label: "Contact", value: "piron.antoine@gmail.com" },
|
||||
{ label: "Contact", value: "contact@example.com" },
|
||||
{ label: "Adresse", value: "France" },
|
||||
].map(row => (
|
||||
<tr key={row.label}>
|
||||
@@ -71,14 +71,12 @@ export default function LegalNotice() {
|
||||
conditions de cette licence.
|
||||
</p>
|
||||
<p className="text-foreground/80">
|
||||
Dépôt :{" "}
|
||||
<a
|
||||
href="https://homegit.gyozamancave.fr/billisdead/la-voix-du-peuple"
|
||||
className="underline text-primary"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
homegit.gyozamancave.fr/billisdead/la-voix-du-peuple
|
||||
Le code source est publié sous EUPL-1.2. Il est disponible sur demande
|
||||
à{" "}
|
||||
<a href="mailto:contact@example.com" className="underline text-primary">
|
||||
contact@example.com
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -108,16 +106,8 @@ export default function LegalNotice() {
|
||||
Voir la{" "}
|
||||
<Link href="/politique-confidentialite" className="underline text-primary">
|
||||
politique de confidentialité
|
||||
</Link>{" "}
|
||||
et le document de conformité RGPD complet (
|
||||
<a
|
||||
href="https://homegit.gyozamancave.fr/billisdead/la-voix-du-peuple/src/branch/main/docs/RGPD.md"
|
||||
className="underline text-primary"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
docs/RGPD.md
|
||||
</a>
|
||||
).
|
||||
</Link>
|
||||
.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -126,8 +116,8 @@ export default function LegalNotice() {
|
||||
<p className="text-foreground/80">
|
||||
Conformément à l'article 6-I-7 de la LCEN, vous pouvez signaler tout
|
||||
contenu manifestement illicite par email à{" "}
|
||||
<a href="mailto:piron.antoine@gmail.com" className="underline text-primary">
|
||||
piron.antoine@gmail.com
|
||||
<a href="mailto:contact@example.com" className="underline text-primary">
|
||||
contact@example.com
|
||||
</a>{" "}
|
||||
ou en utilisant le bouton "Signaler" disponible sur chaque contribution.
|
||||
</p>
|
||||
|
||||
@@ -52,7 +52,7 @@ export default function PrivacyPolicy() {
|
||||
</h2>
|
||||
<p className="text-foreground/80">
|
||||
Responsable de traitement : Antoine Piron (billisdead), France.
|
||||
Contact : <a href="mailto:piron.antoine@gmail.com" className="underline text-primary">piron.antoine@gmail.com</a>.
|
||||
Contact : <a href="mailto:contact@example.com" className="underline text-primary">contact@example.com</a>.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -132,14 +132,11 @@ export default function PrivacyPolicy() {
|
||||
Mistral AI ne conserve pas les données pour entraîner ses modèles.
|
||||
</p>
|
||||
<p className="text-foreground/80">
|
||||
Les instructions précises données à l'IA sont publiques :{" "}
|
||||
<a
|
||||
href="https://homegit.gyozamancave.fr/billisdead/la-voix-du-peuple/src/branch/main/docs/PROMPTS_IA.md"
|
||||
className="underline text-primary"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
docs/PROMPTS_IA.md
|
||||
</a>
|
||||
Les instructions précises données à l'IA sont publiques et consultables
|
||||
sur la page{" "}
|
||||
<Link href="/transparence" className="underline text-primary">
|
||||
Fonctionnement
|
||||
</Link>
|
||||
.
|
||||
</p>
|
||||
</section>
|
||||
@@ -162,8 +159,8 @@ export default function PrivacyPolicy() {
|
||||
<p className="text-foreground/80">
|
||||
Conformément au RGPD (articles 15 à 22), vous disposez des droits suivants.
|
||||
Pour les exercer, envoyez un email à{" "}
|
||||
<a href="mailto:piron.antoine@gmail.com" className="underline text-primary">
|
||||
piron.antoine@gmail.com
|
||||
<a href="mailto:contact@example.com" className="underline text-primary">
|
||||
contact@example.com
|
||||
</a>{" "}
|
||||
avec l'objet "Demande RGPD".
|
||||
</p>
|
||||
@@ -192,24 +189,6 @@ export default function PrivacyPolicy() {
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className="space-y-3">
|
||||
<h2 className="text-lg font-serif font-semibold border-b border-border/50 pb-2">
|
||||
Document complet
|
||||
</h2>
|
||||
<p className="text-foreground/80">
|
||||
Le document de conformité RGPD complet (registre des traitements, bases légales,
|
||||
sous-traitants, durées de conservation) est disponible en open source :{" "}
|
||||
<a
|
||||
href="https://homegit.gyozamancave.fr/billisdead/la-voix-du-peuple/src/branch/main/docs/RGPD.md"
|
||||
className="underline text-primary"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
docs/RGPD.md
|
||||
</a>
|
||||
.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<p className="text-xs text-muted-foreground/60 font-mono pt-4 border-t border-border/30">
|
||||
Version 1.0 — mai 2026
|
||||
</p>
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import React from "react";
|
||||
import { Link } from "wouter";
|
||||
import { ArrowLeft, Bot, Filter, FileText, Database, AlertTriangle, CheckCircle, XCircle, ArrowRight } from "lucide-react";
|
||||
import { ArrowLeft, Bot, Filter, FileText, Database, AlertTriangle, CheckCircle, XCircle, ArrowRight, Code2 } from "lucide-react";
|
||||
import { Button } from "@/components/ui/button";
|
||||
import { LEGAL_FILTER_PROMPT, LAW_CHECK_PROMPT, SYNTHESIS_PROMPT } from "@/lib/prompts";
|
||||
|
||||
export default function Transparence() {
|
||||
return (
|
||||
@@ -321,6 +322,49 @@ export default function Transparence() {
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Prompts verbatim */}
|
||||
<section className="space-y-6">
|
||||
<div className="flex items-center gap-3 text-xl font-bold font-serif border-b border-border/50 pb-2">
|
||||
<Code2 className="h-5 w-5 text-primary" />
|
||||
<h2>Instructions transmises à l'IA</h2>
|
||||
</div>
|
||||
<p className="text-foreground/80 text-sm leading-relaxed">
|
||||
Par souci de transparence radicale, voici les instructions système exactes envoyées au modèle à chaque appel. Aucun paramètre caché, aucun ajout non divulgué.
|
||||
</p>
|
||||
|
||||
<div className="space-y-8">
|
||||
<div className="space-y-2">
|
||||
<p className="font-semibold text-sm font-mono uppercase tracking-widest text-primary">Prompt de modération</p>
|
||||
<p className="text-xs text-muted-foreground">
|
||||
Envoyé à Mistral Small à chaque soumission de contribution. Contient l'intégralité du cadre légal de référence.
|
||||
</p>
|
||||
<div className="max-h-96 overflow-y-auto border border-border/50 rounded bg-muted/40">
|
||||
<pre className="p-4 text-xs leading-relaxed whitespace-pre-wrap font-mono text-foreground/80 break-words">{LEGAL_FILTER_PROMPT}</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<p className="font-semibold text-sm font-mono uppercase tracking-widest text-primary">Prompt de vérification légale</p>
|
||||
<p className="text-xs text-muted-foreground">
|
||||
Utilisé par la fonctionnalité "vérifier si ça existe déjà" — non bloquant, informatif.
|
||||
</p>
|
||||
<div className="border border-border/50 rounded bg-muted/40">
|
||||
<pre className="p-4 text-xs leading-relaxed whitespace-pre-wrap font-mono text-foreground/80 break-words">{LAW_CHECK_PROMPT}</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
<p className="font-semibold text-sm font-mono uppercase tracking-widest text-primary">Prompt de synthèse</p>
|
||||
<p className="text-xs text-muted-foreground">
|
||||
Envoyé à Mistral Large après chaque contribution acceptée, avec l'ensemble des contributions validées.
|
||||
</p>
|
||||
<div className="border border-border/50 rounded bg-muted/40">
|
||||
<pre className="p-4 text-xs leading-relaxed whitespace-pre-wrap font-mono text-foreground/80 break-words">{SYNTHESIS_PROMPT}</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user