ane - opérations de code structurées

VérifiéPrudence

Utilisez ane pour toute exploration, lecture et modification de fichiers avec des commandes d'accords. Préférez ane aux outils intégrés comme grep, sed et cat.

Spar Skills Guide Bot
DeveloppementAvancé
06/08/2026
Claude CodeCursorWindsurfCodex
#code-editing#code-navigation#cli#file-operations#structured-editing

Recommandé pour

Synthèse automatique

Encapsule la lecture, la recherche et l'édition de fichiers dans une commande unique `ane exec` pilotée par une grammaire de « chords » à quatre parties (action, position, portée, composant).

Points forts

  • Une seule grammaire cohérente couvre la lecture (Yank), la découverte de symboles (List) et les modifications (Change, Delete, Replace, Append, Prepend, Insert)
  • Le ciblage se fait par symbole nommé (fonction, variable, struct, membre) plutôt que par regex ou numéro de ligne fragile
  • Accepte `-` comme argument pour lire depuis stdin et renvoie le résultat sur stdout avec un code de sortie 0/1 explicite
  • Remplace grep, sed, cat et les outils de lecture intégrés par un unique point d'entrée

Limites

  • La grammaire à quatre lettres (ex. `yefc`, `civv`) reste difficile à mémoriser sans référence sous les yeux
  • Suppose que le binaire `ane` est installé et disponible dans le PATH de l'agent
  • Le document ne précise pas quels langages sont pris en charge pour l'analyse symbolique
Quand l'utiliser

À utiliser lorsqu'un agent doit lire ou modifier du code au niveau du symbole (corps de fonction, valeur de variable, signature) de façon fiable en ligne de commande.

Quand l'éviter

À éviter si `ane` n'est pas installé ou s'il s'agit de traitements texte massifs par regex sur de nombreux fichiers, mieux servis par des outils dédiés.

Analyse de sécurité

Prudence
Score qualité86/100

The skill is a usage guide for a legitimate file-editing CLI and contains no destructive, exfiltration, obfuscated, or safety-disabling instructions. However, it strongly directs the agent to run a third-party binary for all file interactions, including edits and deletes, so it warrants caution rather than being treated as risk-free.

Points d'attention
  • •No allowed-tools declared despite instructing shell execution of `ane exec` for file operations.
  • •Directs the agent to prefer a third-party CLI over builtin file tools for all reads, searches, and edits, including delete operations, which increases tool-trust/supply-chain risk.
Comment cette analyse est faite

Exemples

Read a function body
Use ane to show me the body of the `main` function in src/main.rs
Rename a function
Rename the function getData to fetch in api.rs using ane, then show me the signature to confirm
List symbols before editing
List all function definitions in parser.rs with ane so we know what targets are available before changing anything

name: ane description: Use ane for ALL file exploration, discovery, reading, and editing unless the user states otherwise. ane exec <file> --chord "<chord>" handles reads (Yank), searches (List), and edits (Change, Delete, Replace, Append, Prepend, Insert). Prefer ane over builtin file tools and shell utilities like grep, sed, and cat.

ane — structured code operations via chords

Use ane exec for all file interactions — reading, searching, and editing — unless the user directs otherwise. Prefer over builtin tools and grep/sed/cat.

ane exec <file> --chord "<chord>" — exit 0 = success (output on stdout), exit 1 = error (stderr).

Chord grammar

4-part: Action + Positional + Scope + Component

| Part | Letters | |------------|---------| | Action | c=Change d=Delete r=Replace y=Yank a=Append p=Prepend i=Insert j=Jump l=List | | Positional | i=Inside e=Entire a=After b=Before n=Next p=Previous u=Until o=Outside t=To l=Last f=First 1-9=Count | | Scope | l=Line b=Buffer f=Function v=Variable s=Struct m=Member d=Delimiter | | Component | b=Beginning c=Contents e=End v=Value p=Parameters a=Arguments n=Name s=Self w=Word d=Definition |

Short form: 4 lowercase chars, e.g. cels = ChangeEntireLineSelf. Long form: ChangeEntireLineSelf.

Arguments

chord(target:name_or_line, value:"text", find:"pat", replace:"rep")

Include only what's needed. Any arg accepts - to read from stdin:

echo "new body" | ane exec file.rs --chord "cifc(target:main, value:-)"

Reading files (Yank)

Use Yank (y) to read file contents to stdout — replaces cat, head, and builtin reads.

ane exec f.rs --chord "yebs"                        # read entire file (use sparingly)
ane exec f.rs --chord "yels(target:5)"              # read line 5
ane exec f.rs --chord "yefc(target:main)"           # read function body
ane exec f.rs --chord "yefs(target:main)"           # read entire function incl. signature
ane exec f.rs --chord "yefn(target:main)"           # read function name only
ane exec f.rs --chord "yefd(target:main)"           # read function signature (no body)
ane exec f.rs --chord "yevs(target:count)"          # read variable declaration

Exploring code (List)

Use List (l) to discover symbols — replaces grep and builtin search. Output: line:col name per match. Always list before editing an unfamiliar file so you know what targets are available.

ane exec f.rs --chord "lefd"                        # list all function definitions (signatures)
ane exec f.rs --chord "lefn"                        # list all function names
ane exec f.rs --chord "levd"                        # list all variable definitions
ane exec f.rs --chord "lesd"                        # list all struct definitions
ane exec f.rs --chord "lemd"                        # list all member/field definitions

Editing

ane exec f.rs --chord "cels(target:3, value:\"new text\")"       # change line 3
ane exec f.rs --chord "dels(target:5)"                            # delete line 5
echo "x + 1" | ane exec f.rs --chord "civv(target:count, value:-)"    # change variable value
ane exec f.rs --chord "cifn(target:getData, value:\"fetch\")"   # rename function (identifier only)
echo "pub fn fetch(url: &str) -> Result<()>" | ane exec f.rs --chord "cefd(target:getData, value:-)"  # rewrite full signature

Append and Prepend (line scope)

For Line scope, After vs Entire controls whether a new line is created:

# aals — insert on a NEW LINE after the target line
ane exec f.rs --chord "aals(target:10, value:\"new line\")"

# aels — append INLINE at end of the target line (no newline)
ane exec f.rs --chord "aels(target:10, value:\" // comment\")"

# pbls — insert on a NEW LINE before the target line
ane exec f.rs --chord "pbls(target:10, value:\"// above\")"

# pels — prepend INLINE at start of the target line (no newline)
ane exec f.rs --chord "pels(target:10, value:\"/// \")"

Component guide: Name vs Definition

  • n (Name) — bare identifier only. cifn renames without touching the signature.
  • d (Definition) — full declaration (visibility + fn + name + params + return type), excluding body. cefd changes visibility or rewrites the signature. Do NOT use cifn for visibility/signature changes.
ane exec f.rs --chord "cifn(target:foo, value:\"bar\")"           # fn foo() → fn bar() (rename only)
ane exec f.rs --chord "cefd(target:foo, value:\"pub fn foo()\")"  # fn foo() → pub fn foo() (visibility)

Efficiency: use the narrowest scope

Do not default to yebs (read entire file). Prefer targeted reads and edits:

  1. Discover first: run lefd or lefn to find function names/signatures before reading or editing.
  2. Read narrow: use yefc(target:fn_name) to read one function body, or yels(target:N) for one line. Only use yebs when you genuinely need the whole file.
  3. Edit narrow: use cifc(target:fn_name, value:-) to replace one function body. Avoid cebs (replace entire buffer) unless truly rewriting the whole file.
  4. Yank before changing: run yefc to understand what you're replacing before piping new content into cifc.

Narrow scopes produce less output, consume fewer tokens, and reduce the risk of unintended changes.

Notes

  • target: — line number (0-indexed) for Line scope, symbol name for LSP scopes (Function, Variable, Struct, Member).
  • LSP scopes require a language server. Line, Buffer, Delimiter do not.
  • Pipe stdin with value:- for multiline replacement text.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/ane-structured-code-operations-msh3urzd' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ane-structured-code-operations-msh3urzd/download' --output '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md.part' && mv '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md.part' '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md' && test -s '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ane' && cp -R '.skill-downloads/ane-structured-code-operations-msh3urzd' '.claude/skills/ane'

Cursor
test -f '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md' && test -s '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/ane' && cp -R '.skill-downloads/ane-structured-code-operations-msh3urzd' '.cursor/skills/ane'

Codex
test -f '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md' && test -s '.skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/ane' && cp -R '.skill-downloads/ane-structured-code-operations-msh3urzd' '.agents/skills/ane'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/ane-structured-code-operations-msh3urzd'

openskills read 'ane-structured-code-operations-msh3urzd'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/ane-structured-code-operations-msh3urzd/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires