blocks/context.md tells the model about stubs and recall; blocks/workspace.md tells a chat's model its view. blocks/library.md and blocks/prototypes.md are the CLI's alone. acp.md: `instance` on session/new, a client-opened session runs on the chat's model and no other (the own-model notice is gone), capability `show` with `_lembas/show`, memory through the instance. README: the new fields and the 3.0.0 section. VERSION 3.0.0-draft. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
6 files changed
+159
-20
No files matched your search
@@ -0,0 +1,9 @@
|
||||
<!-- LLeMbas CLI and LLeMbas, spec 3.0.0: how tool results are kept short (context.md). -->
|
||||
# Tool results
|
||||
- Every tool result starts with its id in brackets, like `[#a3f2]`. A read's bracket also says the path, the lines shown, the file's length and a short hash of its content: `[#a3f2 src/app.ts lines 1-200 of 340 sha 1c9e04ab]`.
|
||||
- Reading a file that has not changed since an earlier read in this conversation returns a stub instead of the lines: `Unchanged since #a3f2, which already shows lines 1-200.` The content is in that earlier result. Use it; do not read the file again to see it.
|
||||
- A listing or search repeated with the same result returns `Same result as #f001.` in the same way.
|
||||
- Long output is shortened to its beginning and its end, with `[1234 lines elided, full output #c9d0]` between them.
|
||||
- `recall` with an id shows that stored result in full, or from a line on: for lines left out of a shortened output, or for a result from before the conversation was summarised. Nothing is lost; recall only what you need.
|
||||
- An edit answers with the diff of the change, not the whole file. The earlier read with that diff applied is the file now: read it again only for lines you have not seen.
|
||||
- After the conversation is summarised, earlier results are no longer in front of you. The summary ends with a table of the files read before it, with their ids; a file read again then comes back in full.
|
||||
@@ -0,0 +1,10 @@
|
||||
<!-- LLeMbas, spec 3.0.0: the file system a chat works in (filesystem.md). -->
|
||||
# Files
|
||||
- You work in the user's file system, through the file tools. Relative paths start at {{start}}; absolute paths start at `/`.
|
||||
- What this session can reach, and how: {{view}}. Nothing else exists here. A path below one of these is reached by its full path; a directory above one that is not itself listed cannot be listed, read or written.
|
||||
- A listing ends a directory with `/`, marks a repository mounted from a forge `[mount]`, and an entry you can read but not change `[read-only]`.
|
||||
- Read-only means read but not changed. Stage means changes are kept in this session and, in a repository, not committed. Commit means that, in a repository, the changes may also be committed and pushed to the forge.
|
||||
- {{repositories}}
|
||||
- Deleting moves a file to the trash, from which the user can restore it. Still, delete only what you were asked to, or what you made yourself.
|
||||
- {{show}}
|
||||
- {{python}}
|
||||
+26
-13
@@ -11,7 +11,7 @@
|
||||
"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",
|
||||
"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",
|
||||
@@ -183,25 +183,21 @@
|
||||
"llembas_text": "identical"
|
||||
},
|
||||
"blocks/prototypes.md": {
|
||||
"scope": "shared",
|
||||
"llembas": [
|
||||
"core.prototypes"
|
||||
],
|
||||
"llembas_text": "identical",
|
||||
"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": "shared",
|
||||
"llembas": [
|
||||
"core.library"
|
||||
],
|
||||
"llembas_text": "identical",
|
||||
"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",
|
||||
@@ -227,6 +223,23 @@
|
||||
"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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user