/** * Knowledge-graph registration for operational skills. * * Registers each generated skill so `aidlc knowledge query ` finds it and a * developer returning months later does not write a second skill for the same job * (US-6, AC-28…AC-30, AC-49). * * Two properties are load-bearing and neither is free: * * - **The entity type is not gate-counted.** `custom:operational-skill` rather than * `module`, because the ideation seeding gate counts `module`, `convention`, and * `depends-on` (`knowledge/gate-criterion.ts`). Registering skills as modules * would let generated files satisfy a lifecycle gate meant to measure real * architecture. * - **The id is namespaced and collisions are refused.** `addEntity` merges into any * pre-existing entity with the same id, and `mergeEntities` never overrides * `type` — so an unnamespaced id colliding with an existing `module` would stay * gate-counted *and* clobber an architecture fact. Registration therefore checks * the resolved type first and refuses rather than merging. * * Registration is best-effort: failure warns and generation still succeeds (AC-30). * * Requirements: AC-28, AC-29, AC-30, AC-49 * * @module */ import type { OperationalSkill } from './schema.js'; /** Entity type for operational skills — deliberately not gate-counted (AC-28). */ export declare const OPERATIONAL_ENTITY_TYPE = "custom:operational-skill"; /** Id prefix keeping operational entities out of the general id namespace. */ export declare const OPERATIONAL_ID_PREFIX = "operational-skill-"; /** Outcome of a registration attempt. */ export interface RegistrationResult { /** True when the entity now exists with the operational type. */ registered: boolean; /** Non-fatal explanation when `registered` is false, or a merge note. */ warning?: string; /** The entity id used. */ id: string; } /** Namespaced entity id for a skill name. */ export declare function operationalEntityId(name: string): string; /** * Register (or repair) an operational skill in the knowledge graph. * * Never throws: a graph problem must not lose a skill the user already confirmed * (AC-30). Re-running for a skill whose files exist but whose entity is missing * recreates it, which is the AC-49 repair path. * * @param projectRoot - Absolute project root. * @param skill - The skill to register. * @returns Whether the entity is now present, plus any warning to surface. */ export declare function registerOperationalSkill(projectRoot: string, skill: OperationalSkill): RegistrationResult; /** * Is this skill already registered with the operational type? * * Used to decide whether a re-run needs to repair registration (AC-49). * * @param projectRoot - Absolute project root. * @param name - Skill name. */ export declare function isOperationalSkillRegistered(projectRoot: string, name: string): boolean; //# sourceMappingURL=knowledge.d.ts.map