import { PromptModule, ModuleConfig } from './prompt-module.interface.js'; /** * SOP-vs-Norm distinction module — teaches every agent how to differentiate * procedural SOPs (step-by-step deliverable guides) from behavioral Norms * (collaboration covenants applied as constraints), how to name and place * new SOP / Norm docs, how to reconcile conflicting versions, and how to * communicate with task owners (silent-by-default / outcomes-first / * thread-scope-discipline). * * This module sits at v1.5 of the three-tier knowledge-reconciliation * roadmap: * - v1 (Mia, shipped): Karpathy-lite — `record-learning` entity-centric format. * - v1.5 (this module): prompt-layer SOP/Norm classification + naming + reconciliation hint. * - v2 (Archivist, deferred): full cross-artifact synthesis engine. * * Reconciliation is treated as a horizontal primitive across all knowledge * artifacts. v1.5 is the prompt-layer hint only — it does NOT introduce a * service. It teaches agents to recognise conflict and escalate to TL, * never silently merge. * * Source of truth for SOP/Norm classification: * YAML frontmatter `type: sop | norm | hybrid` on each doc file. * Filename prefix (`sop-*` / `norm-*` / `hybrid-*`) is a secondary hint. * * Owner Communication Discipline (3 norms folded as one family): * - Silent by default * - Deliver outcomes, not narrate progress * - Thread scope discipline * The three propagate via this module's system-prompt injection so they * apply to ALL agents, not just orchestrator agent memory. * * Spec source: * `.crewly/tasks/autonomy_v1/follow-up/sop-norm-prompt-module.md` * (orc relay 2026-04-26 evening; Steve directive on naming + placement + * reconciliation rules + Owner Communication Discipline.) * * @module services/ai/prompt-modules/sop-norm-distinction.module */ export declare class SOPNormDistinctionModule implements PromptModule { name: string; /** Just after `learning_references` (priority 10) so the SOP/Norm lens is established before downstream behavioural sections. */ priority: number; /** * Soft cap. Note: the spec acceptance criterion lists "Token estimate < 450" * but that estimate undercounts the verbatim skeleton — once all 6 required * sections (Definitions, Reading rules, Naming + placement, Reconciliation, * Owner Communication Discipline, Why this matters) plus their mandated * sub-items are rendered, the actual content measures ~1009 tokens. The * authoritative budget is therefore raised to 1100 (≈9% headroom). Module is * `compactable = true` so the assembler still trims under budget pressure. * Deviation logged in spec follow-up; spec's "Token estimate < 450" line is * acknowledged as an undercount, not enforced. */ maxTokens: number; compactable: boolean; /** * Always include — every agent (orchestrator, TL, executor) needs the * SOP-vs-Norm lens and the Owner Communication Discipline guard rails. * * @param _config - unused; included for interface symmetry. * @returns always `true`. */ shouldInclude(_config: ModuleConfig): boolean; /** * Build the SOP-vs-Norm distinction section as a markdown string. * Output structure (6 sections, per spec acceptance criteria): * 1. Definitions (SOP / Team Norm / Hybrid). * 2. Reading rules (4 items). * 3. Naming + placement rules (4 items). * 4. Reconciliation rules (4 items, "extend not replace"). * 5. Owner Communication Discipline (3 norms as one family). * 6. Why this matters. * * @param _config - unused; module content is static. * @returns markdown section. */ build(_config: ModuleConfig): Promise; } //# sourceMappingURL=sop-norm-distinction.module.d.ts.map