Help us shape the future of Go! Take the 2026 Go Developer Survey

skills

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2026 License: EUPL-1.2 Imports: 17 Imported by: 0

Documentation

Overview

Package skills découvre et charge les skills au format Agent Skills (SKILL.md).

Index

Constants

View Source
const (
	// MaxSkills est le nombre maximal de skills retenus.
	MaxSkills = 200
	// MaxSkillBytes est la taille maximale lue pour un SKILL.md.
	MaxSkillBytes = 32768
)
View Source
const (
	// MaxListDepth est la profondeur maximale listée, SKILL.md étant à 1.
	MaxListDepth = 3
	// MaxListEntries est le nombre maximal de fichiers listés.
	MaxListEntries = 100
)

Variables

View Source
var Builtins = []string{"help", "quit", "skills"}

Builtins liste les commandes intégrées (sans la barre oblique), source unique pour IsBuiltin et la complétion de la TUI.

View Source
var ErrUnknownCommand = errors.New("unknown skill or command")

ErrUnknownCommand indique un /<nom> qui n'est ni intégré ni un skill.

Functions

func Discover

func Discover(dirs []Dir) (*Catalog, []Notice)

Discover parcourt les répertoires dans l'ordre ; en cas de doublon, le premier gagne. Les dossiers de skills qui sont des liens symboliques, et les SKILL.md non réguliers, sont ignorés.

func IsBuiltin

func IsBuiltin(name string) bool

IsBuiltin indique si name (sans la barre oblique) est une commande intégrée, prioritaire sur les skills.

func NewTool

func NewTool(c *Catalog, outputLimit int) tools.Tool

NewTool renvoie l'outil `skill` ; outputLimit borne la lecture d'un fichier.

Types

type Catalog

type Catalog struct {
	// contains filtered or unexported fields
}

Catalog contient les skills découverts.

func (*Catalog) Expand

func (c *Catalog) Expand(line string) (exp Expansion, ok bool, err error)

Expand traite une ligne de l'utilisateur. ok=false si ce n'est pas une commande slash. Les commandes intégrées sont traitées par l'appelant.

func (*Catalog) Files

func (c *Catalog) Files(name string) ([]string, bool, error)

Files liste les fichiers du skill (chemins relatifs, triés, SKILL.md compris), sur MaxListDepth niveaux et MaxListEntries entrées au plus. Les liens symboliques sont ignorés et jamais suivis. truncated signale que la liste a été coupée.

func (*Catalog) Get

func (c *Catalog) Get(name string) (Skill, bool)

Get renvoie le skill de ce nom.

func (*Catalog) List

func (c *Catalog) List() []Skill

List renvoie les skills par ordre de priorité puis de nom.

func (*Catalog) Load

func (c *Catalog) Load(name string) (body string, sha256hex string, truncated bool, err error)

Load relit SKILL.md (sans cache) et renvoie le corps, le sha256 des octets lus et un indicateur de troncature.

func (*Catalog) PromptSection

func (c *Catalog) PromptSection(lang i18n.Lang, budget int) (section string, dropped int)

PromptSection renvoie la section du prompt système listant les skills invocables par le modèle, ou "" s'il n'y en a aucun. Au-delà de budget octets, les descriptions sont coupées à 200 caractères, puis les derniers skills sont retirés (dropped).

func (*Catalog) ReadFile

func (c *Catalog) ReadFile(name, rel string, limit int) (content string, abs string, sha256hex string, err error)

ReadFile lit un fichier du dossier du skill. rel est relatif au dossier ; les chemins absolus, « .. » et tout lien symbolique sont refusés. Le contenu est tronqué à limit caractères (0 = sans troncature) ; le sha256 porte sur les octets lus sur disque.

type Dir

type Dir struct {
	Path   string
	Source Source
}

Dir est un répertoire de skills et son origine.

func Dirs

func Dirs(getenv func(string) string, projectRoot string) []Dir

Dirs renvoie les répertoires de skills, du plus prioritaire au moins prioritaire : utilisateur (XDG, .claude, .agents) puis projet.

type Expansion

type Expansion struct {
	Text, Skill, SHA256 string
}

Expansion est le résultat du traitement d'une ligne commençant par « / ».

type Notice

type Notice string

Notice est un message d'information (skill ignoré, limite atteinte).

type Skill

type Skill struct {
	Name, Description string
	Source            Source
	Dir               string // chemin absolu du dossier du skill
	AllowedTools      []string
	ModelInvocable    bool
}

Skill décrit un skill découvert.

type Source

type Source string

Source indique l'origine d'un skill.

const (
	User    Source = "user"
	Project Source = "project"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL