carryforward
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CARRYFORWARD_DIR | No | Directory where ledger files are stored (defaults to ~/.carryforward). | |
| AI_GATEWAY_API_KEY | No | Key used to reach Jev for scoring; without it everything still works, but recall just gives you the whole list and tells you it could not score. | |
| CARRYFORWARD_PROJECT | No | Name of the project's ledger file; set per project to avoid sharing one file across projects. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| recordA | Append one fact to this project's ledger, at the moment it is produced. Call it right after: the user states a rule or a boundary (constraint); the user corrects something you did (correction); you choose between alternatives (decision — say why in text, and ref where it is recorded); a tool result yields a figure you will rely on (measurement — ref the command, refresh says whether it reproduces); work is parked, blocked, or handed to someone (thread — ref the branch, PR, or issue). Decisions, measurements and threads must carry a ref. Write text so it says WHAT the thing is before WHY: recall scores entries against a future task by their text, and an entry that only explains a reason will not be found by the task it belongs to. To retire an earlier entry pass its id in supersedes; the old entry stays on disk, marked replaced. Nothing here is ever deleted. |
| recallA | Bring forward what earlier sessions recorded, scored against the task you are about to do. Call it once, at the start of a task, with the task in one sentence. Constraints and corrections come back in full every time. Everything else is scored for whether not knowing it would cause wrong or repeated work: high scores come back in full, middling ones as one line, the rest are omitted. Without a task it lists everything one line each. If scoring is unavailable it returns everything and says so — it never returns less than the ledger holds without telling you. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
Record and recall have completely distinct purposes: one appends to the ledger, the other queries it. There is no overlap or ambiguity between them.
Both tools use the same pattern of a single imperative verb describing the operation. Record and recall are symmetric, predictable, and easy to distinguish.
Two tools perfectly cover the core write/read lifecycle of the ledger. Additional tools would add bloat without expanding the server's stated purpose.
The surface supports recording facts, superseding old entries, task-scored recall, and full listing without a task. Deletion is intentionally excluded by design, so no necessary operation is missing.