Files
LLeMbas-CLI/harness/prompts/index.json
T
HomerandClaude Fable 5.1 2183040db8 Harness spec 2.0.0: background work is a job — commands and subagents alike, seen and steered
One registry per process, every job owned by a session: bash's background commands (and a command
still running at its timeout, which now goes to the background instead of being killed) and
subagents started with task background: true. job_list, job_output, job_stop (the former
bash_list, bash_output, bash_kill) and the new job_send and report; a finished job wakes the owning
session in every front end with its marked note. The TUI counts jobs, lists them (/jobs), opens a
command's output, enters a subagent and messages it, moves a command to the background (ctrl+b)
and asks before quitting with jobs running. The link gains the jobs capability. Subagents get a
session row of their own, the spec's preamble and agent texts, and their errors reach the report.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-20 16:17:00 +00:00

233 lines
8.4 KiB
JSON

{
"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 CLI: the bullet about using read, edit, write, grep and glob rather than shell commands; LLeMbas: empty",
"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": "shared",
"llembas": [
"core.prototypes"
],
"llembas_text": "identical",
"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"
}
},
"blocks/library.md": {
"scope": "shared",
"llembas": [
"core.library"
],
"llembas_text": "identical",
"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"
}
},
"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/<name>.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"
}
}
}