englog
v0.1.0
Published
Repo-local engineering experience graph and CLI for capturing project pitfalls, decisions, and reports.
Maintainers
Readme
EngLog
EngLog is a repo-local engineering experience timeline graph. It stores structured project experience inside .englog/, then builds a time-series graph and local web dashboard for problems, optimizations, decisions, and reports.
MVP
englog/englog .: run the interactive init wizardenglog init: scaffold.englog/in a projectenglog init --agent claude-code --agent cursor --agent codex: scaffold project-local command/skill entrypoints non-interactivelyenglog capture: save an experience entryenglog graph build: build the timeline graph cacheenglog report generate: write a project reportenglog web: start a local dashboard
Quick Start
npm install -g englog
cd /path/to/repo
englog .然后就会进入初始化向导,选择:
claude-codecodexcursor
默认命令名是 /capture。初始化完成后,就可以在这些客户端里直接调用,而且不需要给 /capture 传任何参数;模型会根据当前上下文自动整理记录,必要时再追问确认。
englog capture \
--type problem \
--title "Prisma migration ran in wrong package" \
--summary "Monorepo root script proxied the command to the wrong workspace." \
--symptom "Migration artifacts were created under the wrong app." \
--root-cause "I ran the command from the repo root without checking schema ownership." \
--resolution "Re-ran under apps/api and documented the package boundary." \
--takeaway "For monorepos, locate the owning package before running DB tooling." \
--tag prisma \
--tag monorepo
englog graph build
englog report generate --type pitfalls
englog web如果你想用结构化 JSON 一次性写入,也可以:
cat <<'JSON' | englog capture --stdin-json
{
"type": "problem",
"title": "Prisma migration ran in wrong package",
"summary": "Monorepo root script proxied the command to the wrong workspace.",
"symptom": "Migration artifacts were created under the wrong app.",
"rootCause": "I ran the command from the repo root without checking schema ownership.",
"resolution": "Re-ran under apps/api and documented the package boundary.",
"takeaway": "For monorepos, locate the owning package before running DB tooling.",
"efficiencyGain": "Avoids 30m of repeated debugging.",
"tags": ["prisma", "monorepo"],
"artifacts": ["apps/api/schema.prisma"]
}
JSONThe command set works against the current directory by default, but each command also accepts --path to target a different repository.
Agent Integrations
englog . or englog init can scaffold project-local command or skill files for supported clients:
claude-code->.claude/skills/<command-name>/SKILL.mdcursor->.cursor/commands/<command-name>.mdcodex->.codex/skills/<command-name>/SKILL.md
Interactive example:
cd /path/to/repo
englog .Non-interactive example:
englog init \
--path /path/to/repo \
--agent claude-code \
--agent cursor \
--agent codex \
--command-name captureThis gives you a shared slash command or skill name like /capture in tools that support it, while all of them eventually save into the same repo-local .englog/ data model.
Repo Layout
.englog/
project.yaml
entries/
sessions/
reports/
artifacts/
templates/
cache/
private/Notes
.englog/cache/and.englog/private/are ignored by Git by default.- The graph cache is rebuilt from the markdown source files, so the graph is an index layer rather than the source of truth.
- Runtime requirement:
Node.js 18+
