elen_commit
Commits a new decision to the graph, with its constraints as a plain-text list.
text必填domainconstraints
io.github.CloudCorpRecords由 GitHub 帳號 CloudCorpRecords 發布v0.1.0更新於 Nov 7, 2026
Local decision memory for coding agents: record decisions with limits, search precedents, supersede.
給編碼代理用的本機決策記憶:記錄帶限制條件的決策、搜尋先例,並明確取代舊決策。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
參照 儲存庫 中的啟動說明。
decisiontrail is a local decision memory for coding agents. When an agent makes a call — which database, which cache, which release cadence — decisiontrail records the decision together with the limits it was made under, so a later session can find the precedent instead of re-deciding from scratch, and can revise it explicitly when the call changes.
Everything is local: decisions live in one JSON file on your machine. There is no account, no login, and no network access. Records can be plain commits or validated decision records (constraints, evidence and an answer); validated records are the ones precedent search draws on. Old decisions are never edited in place — a revision creates a new record and marks the old one superseded, linked in both directions.
This package is a clean-room rebuild of the local surface of the
"elen" MCP server (10 of its 12 tools). The original's two
connected-mode beta tools, elen_incoming and elen_team_search,
need a hosted workspace, a login and an API key, and are not included.
Or run the container image:
The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead. If you run the container, mount a volume over the store directory if you want decisions to persist.
DECISIONTRAIL_DB environment variable, or
~/.decisiontrail/decisions.json by default.DECISIONTRAIL_AGENT and DECISIONTRAIL_PROJECT name the
namespace reported by elen_status; both default to local.Decision IDs are sequential: d-1, d-2, … in creation order.
One bin serves both faces. Each tool is a subcommand taking a single JSON argument (optional for the no-argument tools); results print as JSON.
Exit codes: 0 on success, 1 for a domain error (for example an
unknown decision ID — the error names the ID), 2 for usage errors
and invalid arguments.
MCP client configuration:
elen_suggest and elen_search_precedents rank by case-insensitive
token overlap between the query and a record's text plus constraints:
the score is the number of distinct query tokens present. Records with
no overlap are omitted; ties are broken by recency, newest first.
A record counts as validated only when it was created with
elen_log_decision. A committed decision that is later superseded
keeps its history: supersedes / superseded_by link the chain and
the old record's status becomes superseded.
MIT — see LICENSE.
來源:README.md,提交 6169cda
Commits a new decision to the graph, with its constraints as a plain-text list.
text必填domainconstraintsCreates a validated Decision Record from constraints, evidence and an answer.
textanswer必填domainevidence必填constraints必填Expands a decision ID into its full constraints and text.
id必填Retrieves short pointers to prior decisions before you make a new one.
limitquery必填Searches validated decisions for precedents.
limitquery必填Revises an older decision and marks it superseded by a new one.
id必填text必填domainconstraintsGives an overview of active decision threads grouped by domain, for the start of a session.
無需輸入參數。
Returns the agent, project, database path and counts, to check the namespace before committing.
無需輸入參數。
Shows the competency profile for this agent, built from its validated decision history.
無需輸入參數。
Suggests clusters and duplicate or stale candidates without changing the graph.
無需輸入參數。
已滿足適用檢查項的 90%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
npx @reneturcios/decisiontrail elen_statusdocker run -i ghcr.io/cloudcorprecords/decisiontrail# Check the namespace before committingdecisiontrail elen_status
# Commit a decision with its limitsdecisiontrail elen_commit '{"text":"Use Postgres for sessions","constraints":["must be durable"],"domain":"storage"}'
# Record a validated decisiondecisiontrail elen_log_decision '{"constraints":["latency under 100ms"],"evidence":["benchmark run 42"],"answer":"Adopt the in-process cache","domain":"performance"}'
# Before a new decision, ask for pointers; then search validated precedentsdecisiontrail elen_suggest '{"query":"session storage"}'decisiontrail elen_search_precedents '{"query":"session storage"}'
# Read one record in full, revise one, survey the storedecisiontrail elen_expand '{"id":"d-1"}'decisiontrail elen_supersede '{"id":"d-1","text":"Use Redis for sessions with Postgres fallback"}'decisiontrail elen_get_contextdecisiontrail elen_get_competencydecisiontrail elen_consolidate
decisiontrail --versionnpx -y @reneturcios/decisiontrail mcp{ "mcpServers": { "decisiontrail": { "command": "npx", "args": ["-y", "@reneturcios/decisiontrail", "mcp"] } }}npm installnpm run build # tsc -> dist/npm test # node test runner over test/*.test.ts, temp dirs, no networknpm run dev # run the CLI from source via tsx