/** * Shared skill-naming conventions for platform packaging. * * Before this module each adapter restated its own naming rules in a private * helper, so framework and operational packaging could drift apart (AC-34). The * helpers were *not* equivalent, so this module exposes the behaviour space * explicitly rather than collapsing them into one function: * * | Caller | Function | Behaviour | * |---------------------|---------------------------|---------------------------------------------| * | claude-code | `normalizeSkillName` | substitute, collapse, trim, prefix, truncate | * | claude-code, codex | `canonicalSkillFilename` | pass-through | * * Prefixing is a caller choice, never unconditional (AC-41): framework emission * passes `prefix: true`, operational emission passes `prefix: false`. That is * what lets operational skills stay out of the reserved `aidlc-` namespace * (AC-19) while still reusing these conventions. * * Requirements: AC-19, AC-33, AC-34, AC-41 * * @module */ /** Maximum length for a platform skill directory or file name. */ export declare const MAX_SKILL_NAME_LENGTH = 64; /** * The charset a platform skill directory name must satisfy. * * Lowercase, hyphens allowed, must start with a letter. Shared rather than * restated so a second validator cannot drift from claude-code's. */ export declare const SKILL_NAME_RE: RegExp; /** * The one skill that never takes the `aidlc-` prefix: the bare entry point. * The prefixing adapter exempts it, so the shared helper must too. * * Exported because an adapter may need to treat the entry point specially in its * emitted content, and comparing against a literal `'aidlc'` there would be a * second declaration of the same fact. */ export declare const BARE_ENTRY_POINT = "aidlc"; /** The namespace prefix reserved for framework-owned skills. */ export declare const FRAMEWORK_PREFIX = "aidlc-"; /** Options controlling how a skill name becomes a path segment. */ export interface SkillNameOpts { /** * Apply the reserved `aidlc-` framework prefix. Always explicit — an * unconditional prefix is what made AC-19 and AC-34 contradictory (AC-41). */ prefix: boolean; /** Collapse runs of hyphens and trim leading/trailing ones. Default true. */ collapse?: boolean; /** Truncate to this length. Default `MAX_SKILL_NAME_LENGTH`; 0 disables. */ truncate?: number; } /** * Normalize a skill name into a filesystem-safe path segment. * * This is the claude-code directory convention: lowercase, non-charset * characters substituted with hyphens, hyphen runs collapsed, ends trimmed, * optionally prefixed, then truncated. * * @param name - Raw skill name. * @param opts - Prefix choice plus optional collapse/truncate overrides. * @returns A lowercase hyphenated segment safe to use as a directory name. */ export declare function normalizeSkillName(name: string, opts: SkillNameOpts): string; /** * The canonical `.aidlc/skills/` filename convention: the skill name verbatim * plus `.md`. * * Used by claude-code and codex. * * @param name - Raw skill name. * @returns `.md`. */ export declare function canonicalSkillFilename(name: string): string; //# sourceMappingURL=naming.d.ts.map