Skip to content

Repository files navigation

corpus

Moteur de second cerveau curé par LLM. Vous déposez des sources dans un dossier ; Claude compile des pages wiki que vous interrogez sous trois postures et dont vous tirez des livrables. Schéma LLM-wiki de Karpathy étendu avec une couche output/ explicite et une spec anti-lissage.

Installation

Dans une session Claude Code :

/plugin marketplace add evb87-tech/corpus
/plugin install corpus-core@corpus      # moteur seul
/plugin install corpus-pm@corpus        # pack PM (tire corpus-core automatiquement)

/plugin marketplace add lit le manifeste à .claude-plugin/marketplace.json dans le repo public ; aucune publication centralisée n'est requise. Pour épingler une version, utilisez un tag : /plugin marketplace add evb87-tech/corpus@v0.1.0.

Pour installer depuis un clone local (dev sur le moteur), voir docs/plugin-syntax.md.

Ensuite, créer un vault :

/init-vault ~/Documents/mon-vault
export CORPUS_VAULT=~/Documents/mon-vault

Forme du repo

Deux plugins Claude Code dans un seul monorepo :

  • corpus-core/ — le moteur. Règles, agents, slash commands, spec anti-lissage. Agnostique du cas d'usage.
  • corpus-pm/ — premier pack use-case : second cerveau orienté PM. Ajoute des types d'entités, des angles de revue et des transferts vers beads. Dépend de corpus-core (installé automatiquement).

Un .claude-plugin/marketplace.json publie les deux. ADR de la forme : docs/decisions/0001-monorepo-shape.md. Contrat plugin : docs/plugin-syntax.md. Vue d'ensemble avec diagrammes : ARCHITECTURE.md.

flowchart LR
    subgraph plugin["corpus (plugin Claude Code)"]
        core["corpus-core<br/>(moteur : règles, agents,<br/>slash commands)"]
        pm["corpus-pm<br/>(pack use-case)"]
        pm -- "dépend de" --> core
    end

    subgraph vault["$CORPUS_VAULT (votre repo privé)"]
        raw["raw/<br/>sources déposées"]
        wiki["wiki/<br/>pages compilées FR"]
        output["output/<br/>vos livrables"]
        raw -- "/ingest" --> wiki
        wiki -- "/query, /draft" --> output
    end

    plugin -- "lit $CORPUS_VAULT" --> vault

    style raw fill:#f9f,stroke:#333
    style wiki fill:#bbf,stroke:#333
    style output fill:#bfb,stroke:#333
Loading

Le moteur vit dans ce repo. Le vault et son contenu vivent séparément.

Structure du vault

/init-vault crée le dossier, le marker .corpus-vault, et la structure suivante :

$CORPUS_VAULT/
├── raw/            sources (lecture seule pour les agents)
├── wiki/           pages compilées (écritures agents uniquement, contenu FR)
├── output/         livrables (briefs, synthèses)
├── .obsidian/      config Obsidian (locale au vault)
└── .corpus-vault   marker

Les commandes résolvent le vault via $CORPUS_VAULT (dev local) ou $CLAUDE_PLUGIN_OPTION_VAULT_PATH (option vaultPath du plugin installé). Si aucun n'est défini, elles refusent de s'exécuter.

Usage quotidien

  • /ingest [chemin] — lit une source depuis raw/, compile les pages entités dans wiki/
  • /query [posture] <question> — interroge le wiki (postures : research / contradictor / synthesis)
  • /check — passe de lint complet sur le wiki
  • /draft <description> — produit un livrable dans output/

corpus-pm — pack produit

corpus-pm est optionnel mais c'est le cas d'usage principal. Il enregistre dans le moteur :

Six types d'entités wiki : persona, segment, competitor, interview, feature, decision.

Trois angles de revue qui lisent vos drafts dans output/ et produisent des pages type: stress-test dans le wiki : strategy, user, feasibility.

Un transfert beads (pm-epic) qui décompose un PRD en epics et sous-tâches structurées.

corpus-pm n'existe pas sans corpus-core mais n'en modifie aucune règle — il étend seulement les registres.

Spec

Les règles effectives sont dans corpus-core/rules/, chargées à la demande :

  • 01-folder-discipline.md — moteur vs. vault, ce que chaque dossier contient, ce qui est en lecture seule
  • 02-wiki-page-format.md — frontmatter, sections (FR), index.md, log.md
  • 03-ingestion-protocol.md — workflow /ingest, règle de traduction EN→FR, ~10–15 pages par source
  • 04-output-drafting.md — workflow /draft, formats de sortie (Marp, tableaux, graphes)
  • 05-query-postures.md — research / contradictor / synthesis, règles de fichier-retour
  • 06-maintenance-check.md — lint /check, périmètre complet Karpathy
  • 07-anti-lissage.md — cinq comportements LLM qui détruisent un wiki, supprimés
  • 08-vault-structure.md — layout du vault, conventions Obsidian, commande init-vault
  • 09-extension-contract.md — comment les packs use-case étendent corpus-core
  • 10-contribution-workflow.md — cycle bead → branche → PR → revue → merge

CLAUDE.md et AGENTS.md sont les manifestes qui pointent vers ces règles. ARCHITECTURE.md couvre les décisions de conception avec des diagrammes du flux de données et du modèle d'extension.

Règles dures (extrait)

  • Le contenu du wiki est en français. Les sources peuvent être EN ou FR (traduites à l'ingestion). Frontmatter et noms de section restent en anglais.
  • Ne jamais écrire dans raw/. Ne jamais écrire dans output/ depuis l'ingestion. Ne jamais écrire dans wiki/ depuis le drafting.
  • Ne jamais inventer une source. Ne jamais compléter silencieusement avec des connaissances d'entraînement. Ne jamais harmoniser des contradictions.
  • Ne jamais produire une page type: synthesis dans le wiki. La synthèse va dans output/.
  • output/ ne réalimente jamais wiki/. Wiki = ce que les sources disent. Output = ce que le propriétaire conclut.

Outils

  • Runtime : Claude Code (format plugin). Pas de build, pas de TypeScript — corpus est des prompts, des règles et des slash commands.
  • Suivi de travail : beads (préfixe cor-). Voir CONTRIBUTING.md.
  • Licence : MIT — voir LICENSE.

Inspiration

LLM-wiki gist de Karpathy. Extensions apportées par corpus : couche output/ explicite, trois postures de query (research / contradictor / synthesis), spec anti-lissage.

About

Engine + plugin marketplace for an LLM-curated second brain. Karpathy LLM-wiki pattern with anti-lissage spec. Two Claude Code plugins: corpus-core (engine) + corpus-pm (PM use-case pack).

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages