/** * Curator (PROF-S) tooling — discovery-provenance / source-tracking subsystem (#1499). * * - curator-status: per-curator yield (inducted REFs, avg GRADE, return-to score), * revisit-cadence staleness (shared computeStaleness), and the curator-orphan * check (discovery.curator-id set but the PROF-S is missing that REF). * - curator-init: scaffold a PROF-S source profile from a handle. * * The discovery block + PROF-S frontmatter are already parsed by the #1497 * parser (extractDiscovery / loadProfiles incl. `sources`); the read views * by-source / by-curator shipped in #1492. This is the write/compute side. * * @source historical: documentation/SOURCE-TRACKING.md, profiles/sources/TEMPLATE-source-profile.md */ export interface CuratorRow { profId: string; name: string; handle: string; platform: string; signalQuality: string; revisitCadence: string; lastHarvested: string; inductedCount: number; avgGrade: number; /** return-to score = inducted-ref-count × avg-GRADE (SOURCE-TRACKING §2). */ returnToScore: number; overdueDays: number | null; isStale: boolean; } export interface CuratorOrphan { refId: string; curatorId: string; reason: string; } export interface CuratorStatusOptions { today?: string; } /** Per-curator (PROF-S) yield rows, ranked by return-to score (highest first). */ export declare function curatorRows(corpusRoot: string, opts?: CuratorStatusOptions): CuratorRow[]; /** * Curator orphans: a citation sidecar with `discovery.curator-id` set, but the * named PROF-S is absent or is missing that REF in its `corpus-refs`. The check * fires ONLY when curator-id is set (SOURCE-TRACKING §0/§3) — a missing or * null/`direct` discovery block is never an orphan. */ export declare function curatorOrphans(corpusRoot: string): CuratorOrphan[]; /** Render the curator yield ranking + an orphan section. */ export declare function renderCuratorStatus(rows: CuratorRow[], orphans: CuratorOrphan[]): string; /** Curator slug from a handle: lowercased, leading punctuation stripped, `_`→`-`. */ export declare function curatorSlug(handle: string): string; export interface CuratorInitOptions { platform?: string; name?: string; cadence?: string; write?: boolean; today?: string; } export interface CuratorInitResult { slug: string; status: 'wrote' | 'skip' | 'dry-run'; message: string; outPath: string; content?: string; } /** Scaffold a PROF-S source/curator profile from a handle. */ export declare function scaffoldCurator(corpusRoot: string, handle: string, opts?: CuratorInitOptions): CuratorInitResult; //# sourceMappingURL=curator.d.ts.map