/** * The agent-facing content harnery ships into a consumer: one orientation block * for `AGENTS.md` and the generic skills. Everything here is engine mechanics * only — no triage rubric, no escalation targets, no host doc-layout policy * (those stay host-authored, per ADR 0007's portability split). Every command * string renders through `binName`; a template that only reads for `harn` is a * bug the portability guard exists to catch. * * Content, not paths: templates are TS string builders (not shipped `.md` * files), so they compile into `dist/` and resolve identically under Bun and * Node — no `files`-field copy or package-path guesswork. */ /** Managed-region name for the AGENTS.md orientation block. */ export declare const INSTRUCTIONS_REGION = "instructions"; /** Managed-region name for the CLAUDE.md `@AGENTS.md` import shim. */ export declare const IMPORT_REGION = "import"; /** * Managed-region name for the consumer's own coordination policy, spliced from * the file named by `instructions.hostAddendumFile`. Harnery places and * versions the region; the content is the host's and is never rendered here. * See `host-addendum.ts`. */ export declare const HOST_ADDENDUM_REGION = "host-addendum"; /** Which shipped skills exist in the project the block is rendered for. */ export interface BlockSkills { /** the `harn-decide` skill file is present */ decide: boolean; /** the `harn-council` skill file is present */ council: boolean; /** the `harn-end` skill file is present */ end: boolean; /** the `harn-team` skill file is present */ team: boolean; } /** * The always-on orientation spliced into `AGENTS.md`. Target ≤ 80 rendered * lines: it costs every agent context on every turn, so it states that each * surface *exists* and gives one line of *when* — the *how* lives in the skills * and each command's `--help`. Skill names are fixed (`harn-decide`, * `harn-council`, `harn-end`) even for a renamed bin; only command strings * track `binName`. * * The block only points at a skill that actually exists here: a host that * excludes one via `skills.exclude` gets a CLI pointer instead of a dangling * reference to a skill it doesn't have. */ export declare function renderInstructionsBlock(binName: string, skills?: BlockSkills): string; /** A shipped skill: its adapter-relative file path + a bin-name-aware renderer. */ export interface SkillTemplate { id: string; /** path under the adapter skill dir, e.g. `harn-decide/SKILL.md` */ relPath: string; render: (binName: string) => string; } export declare const SKILLS: SkillTemplate[]; //# sourceMappingURL=templates.d.ts.map