{ "about": "Every prompt text of the harness, by path under prompts/. scope: shared — both projects send this text (LLeMbas as the default of the fragments named, which an administrator may still override); cli — LLeMbas CLI's own. `llembas` names the LLeMbas fragment keys (services/prompts.py) the text is, or replaces. A shared text with no fragment named is not yet one of LLeMbas's. HTML comments are provenance and are stripped before sending; {{name}} is a variable. `llembas_text`: whether LLeMbas's default for that fragment is this text word for word (`identical`), or still its own (`differs`, with why) — a shared text that differs is an open item on the Harness-parity page. personality/*.md are the presets both offer: one is appended last, under \"## Personality\". `variables`: what each {{name}} in the text means; each project fills every one before sending, an empty one taking its bullet with it, and none may reach a model unfilled.", "prompts": { "system/default.md": { "scope": "shared", "llembas": [ "core.shared" ], "llembas_text": "identical", "variables": { "intro": "the opening line: what the model is here to help with on this surface (the CLI: software engineering and running the project; LLeMbas: whatever the person is working on)", "surface": "where the output is shown and how it is rendered (a terminal, monospace, GitHub-flavoured markdown; a web page rendering markdown)", "tool_list": "LLeMbas: the exact tools offered on this request, as a sentence; the CLI: empty", "file_tools": "the bullet about using the dedicated file tools — read, edit, write, grep, glob — rather than shell commands: the CLI's, and since spec 3.0.0 LLeMbas's in a chat as well (where there is no shell, the bullet says the file tools are the way to the files); empty for a session without file tools", "plan_tools": "the bullet about planning with plan_write from the start and keeping the plan current with plan_update, and saying so with ask_user when the plan turns out wrong; empty for a subagent, which has no plan tools", "plan_context": "the current plan, rendered with its ids, under a heading, with the sentence to work to it and quote the ids; empty when there is none", "ask_tool": "the bullet about asking with ask_user when a decision is the user's; empty for a subagent, which has nobody to ask", "background": "the CLI: the bullet about running commands in the background and the job tools (job_output, job_list, job_stop), and that a finished job or subagent announces itself; LLeMbas: empty", "git": "the CLI: the `# Git` section; LLeMbas: empty" } }, "system/identity.md": { "scope": "cli", "llembas": [] }, "family/anthropic.md": { "scope": "shared", "llembas": [], "llembas_text": "differs", "why": "not adopted yet" }, "family/gpt.md": { "scope": "shared", "llembas": [], "llembas_text": "differs", "why": "not adopted yet" }, "family/gemini.md": { "scope": "shared", "llembas": [], "llembas_text": "differs", "why": "not adopted yet" }, "family/local.md": { "scope": "shared", "llembas": [], "llembas_text": "differs", "why": "not adopted yet" }, "modes/manual.md": { "scope": "shared", "llembas": [ "mode.manual" ], "llembas_text": "identical" }, "modes/edit.md": { "scope": "shared", "llembas": [ "mode.edit" ], "llembas_text": "identical" }, "modes/auto.md": { "scope": "shared", "llembas": [ "mode.auto" ], "llembas_text": "identical" }, "modes/plan.md": { "scope": "shared", "llembas": [ "mode.plan" ], "llembas_text": "identical", "variables": { "plan_dir": "the CLI: the project's plans directory; LLeMbas: `the plan` (there is no file)" } }, "modes/unattended.md": { "scope": "shared", "llembas": [ "core.unattended" ], "llembas_text": "differs", "why": "the CLI: a headless run with modes; LLeMbas: a scheduled chat with nobody reading", "variables": { "refused": "what the mode would have asked about, as a phrase" } }, "blocks/memory.md": { "scope": "shared", "llembas": [ "tool.memory" ], "llembas_text": "differs", "why": "LLeMbas's memory is per person and per data group" }, "blocks/skills.md": { "scope": "shared", "llembas": [ "tool.skills", "context.skills" ], "llembas_text": "differs", "why": "LLeMbas's skills index differs in shape", "variables": { "skills": "the index: one line per skill", "manage": "the line about fixing and saving skills, or empty" } }, "blocks/skills-empty.md": { "scope": "cli", "llembas": [] }, "blocks/agents-missing.md": { "scope": "cli", "llembas": [] }, "blocks/agents-git.md": { "scope": "cli", "llembas": [] }, "blocks/agents-keep.md": { "scope": "cli", "llembas": [] }, "tasks/compact.md": { "scope": "shared", "llembas": [ "task.compact" ], "llembas_text": "differs", "why": "the CLI's keeps commands and a 'Files touched' section, for coding work" }, "tasks/review.md": { "scope": "cli", "llembas": [] }, "tasks/changelog.md": { "scope": "cli", "llembas": [] }, "tasks/continue.md": { "scope": "shared", "llembas": [], "llembas_text": "identical", "why": "LLeMbas reads it from the vendored spec (harness_spec.prompt), not from a fragment" }, "tasks/init.md": { "scope": "cli", "llembas": [] }, "personality/concise.md": { "scope": "shared", "llembas": [], "llembas_text": "identical" }, "personality/pragmatic.md": { "scope": "shared", "llembas": [], "llembas_text": "identical" }, "personality/optimistic.md": { "scope": "shared", "llembas": [], "llembas_text": "identical" }, "personality/funny.md": { "scope": "shared", "llembas": [], "llembas_text": "identical" }, "personality/formal.md": { "scope": "shared", "llembas": [], "llembas_text": "identical" }, "personality/socratic.md": { "scope": "shared", "llembas": [], "llembas_text": "identical" }, "blocks/prototypes.md": { "scope": "cli", "llembas": [], "variables": { "prototype_sources": "whether the page may load anything over https (the instance's network setting), as one sentence", "prototype_surface": "where it is seen on this surface: empty in the web UI, which renders it; in a terminal, that it is saved as a file the person can open, and that the web UI renders it" }, "why": "spec 3.0.0: a chat has no prototypes (show replaces them); the CLI keeps the text while a client still offers them over the link" }, "blocks/library.md": { "scope": "cli", "llembas": [], "variables": { "knowledge_scope": "the sentence naming the knowledge bases this conversation is limited to (\"Knowledge searches here cover only: …. Finding nothing there means nothing is there, not that the library is empty.\"), or empty" }, "why": "spec 3.0.0: a chat has no knowledge bases (its files are searched with search); the CLI keeps its own local library" }, "blocks/subagent.md": { "scope": "shared", "llembas": [ "core.subagent" ], "llembas_text": "identical", "variables": { "name": "the subagent's name (the agent it was started as)", "instructions": "the agent's own instructions (prompts/agents/.md for a built-in one, the body of the agent file otherwise)", "report": "when the `report` tool is offered: the sentence saying a finding or a question may be sent to the main agent before the final reply, and that a message from it may arrive meanwhile; otherwise empty", "read_only": "in plan mode: the sentence saying it can read and search but change nothing; otherwise empty" } }, "agents/explore.md": { "scope": "shared", "llembas": [], "llembas_text": "identical", "why": "LLeMbas reads it from the vendored spec (harness_spec.prompt), not from a fragment" }, "agents/general.md": { "scope": "shared", "llembas": [], "llembas_text": "identical", "why": "LLeMbas reads it from the vendored spec (harness_spec.prompt), not from a fragment" }, "blocks/context.md": { "scope": "shared", "llembas": [], "llembas_text": "differs", "why": "not adopted yet (spec 3.0.0)" }, "blocks/workspace.md": { "scope": "llembas", "llembas": [], "variables": { "start": "the session's start directory, as a code span", "view": "every path granted to this session with its level (read-only, stage, commit), as a list in one sentence, a mount named as a repository with its branch", "repositories": "when the view holds a repository from a forge: the sentence saying changes there collect in this session's working copy until `commit`, that a branch moved on the forge refuses the commit and shows the difference, and that merge, tag and release always ask the user; otherwise empty", "show": "when the session has a screen (`show` is offered): the sentence saying to open a file the user should see with show — a page, a chart, a document you made — rather than pasting it; otherwise empty", "python": "when `python` is offered: the sentence saying quick calculations and file work can be done in Python in the user's browser, and that it cannot run when no browser page is open; otherwise empty" } } } }