worklog
Skill0 starsChanged 27 days agoMITView on GitHub
Session worklog protocol for {{PROJECT}} — use at session start (to load recent context) and at session end or after significant progress (to log the session). Creates dated files under "Vibe Engineering/worklogs/" and keeps STATUS.md current.
14 other projects use a version of this.
Adopted by
Most recently taken up by
- JibranMachiavelli/claude-worklogtheir own version, first seen Nov 8, 2026
- antass/antass-skillstheir own version, first seen Nov 1, 2026
- Srltas/claude-skillstheir own version, first seen Oct 31, 2026
- rynbol/claude-skillstheir own version, first seen Oct 13, 2026
- BespokeWoodcraftStudio/claude-worklog-skilltheir own version, first seen Oct 11, 2026
- dgilford/ai-science-toolkittheir own version, first seen Oct 1, 2026
Other versions14 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 14
- revfactory/skills★ 160same name
- dgilford/ai-science-toolkit★ 82same name
- tae0y/python-project-template★ 14same name
- antass/antass-skills★ 1same name
- BespokeWoodcraftStudio/claude-worklog-skill★ 1same name
- bpappin/skills★ 1same name
- f-ewald/claude-skills★ 1same name
- ingeun92/claude-code-configs★ 1same name
- renicsemenov/claude-code-skills★ 1same name
- Hyosun-byte/worklog★ 0same name
4 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- live-e2e-verifySkill
- persona-reviewSkill
- session-contextSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 3 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 12 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 29
Before code work in an area, read ARCHITECTURE.md (the map) + its architecture/<area>.md.
- Very specific: line 38
Create Vibe Engineering/worklogs/YYYY-MM-DD-<author>-<slug>.md from the template below.
- Very specific: line 41
Update Vibe Engineering/STATUS.md — your own rows and owner-block only:
- Distinctive: line 51
Add an index line for the new worklog in STATUS (≤ 120 chars, keep the last ~10 rows)
- Very specific: line 54
always-true rule → ARCHITECTURE.md § Invariants (≤ 2 lines.
- Very specific: line 65
Run scripts/ve-check.sh before committing the docs — it catches heading drift, size budgets, hook truncation, missing index rows and …
- Distinctive: line 70
Start the file at session start and fill it in as you work, not retroactively at the end.
- Distinctive: line 114
Close the loop: Don't check a Closing-the-Loop box until you've run it and seen it pass this session.
“Common” is measured: kept by at least 6 in 10 of the 12 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
{{PROJECT}} Session Worklog Protocol
History lives in Vibe Engineering/worklogs/ as one dated file per session
(YYYY-MM-DD-<author>-<slug>.md — author is the collaborator's short name so parallel
sessions never collide; same author + day + slug taken → append -2). The always-read
docs stay short:
Vibe Engineering/STATUS.md (current state, active work, milestones),
Vibe Engineering/ARCHITECTURE.md (structural map + conventions), and
Vibe Engineering/DECISIONS.md (append-only decision log). Never grow STATUS or
ARCHITECTURE with narrative — narrative goes here.
At session start
- On fresh sessions the SessionStart hook (
.claude/hooks/session-start.sh; the Codex wiring symlinks to it) already injected the session protocol, STATUS.md Active work- the head of every owner block under Current status (a
[… more …]marker says where it stopped), every ARCHITECTURE invariant, and the newest rows ofdecisions/INDEX.md— don't re-read them. Milestones, the rest of the owner blocks and the worklog index are not injected. Re-read STATUS only after pulling or if you need an owner block's tail; if the session was resumed/compacted the hook didn't fire — use thesession-contextskill.
- the head of every owner block under Current status (a
- Need the story behind something? Open the 1–3 most relevant dated files (via the index) —
not all of them. For a past choice and its rationale, scan
decisions/INDEX.md(area, status, summary) and open that one entry inDECISIONS.md/decisions/archive-*.md. Before code work in an area, readARCHITECTURE.md(the map) + itsarchitecture/<area>.md. - Starting new work? Claim it: add a row to the Active work table (owner, claimed
date, branch, what). Solo, a local commit suffices; once this repo has >1 collaborator,
push the claim as a STATUS-only
status: claim <what>commit — the one push that needs no go-ahead. Never start work another row already claims; rows >7 days stale with no branch activity may be reaped by anyone (note it in your worklog).
At session end (or after a major milestone)
- Create
Vibe Engineering/worklogs/YYYY-MM-DD-<author>-<slug>.mdfrom the template below. Never append to or edit a previous session's file — one file per session, ~50 lines, hard cap 100. Over? Cut sections, not specificity. - Update
Vibe Engineering/STATUS.md— your own rows and owner-block only:- Active work: update your row, or release it (delete the row; outcome + evidence → milestone table).
- Milestones: one ~300-byte row — status, PR + hash + date, open items, worklog link.
Rows older than ~2 weeks (or two-or-more milestones old) move verbatim to
STATUS-archive.md§ Milestones and become one clause of the Shipped roll-up. - Your
### @<author>block under "Current status" (rewrite, don't append; ≤ 40 lines — the hook injects only its first ~400 bytes, so lead with Now / Open / Next); shipped paragraphs move verbatim toSTATUS-archive.md§ your history. The Shared block only if project-wide truth changed. - Add an index line for the new worklog in STATUS (≤ 120 chars, keep the last ~10 rows)
and the full line in
worklogs/INDEX.md.
- Promote, don't pile: anything durable moves to its home —
- always-true rule →
ARCHITECTURE.md§ Invariants (≤ 2 lines; long form inarchitecture/invariants.md); structural change → the map section + itsarchitecture/<area>.mdfile (no stale islands: update every representation); - recurring gotcha →
architecture/conventions-<area>.mdif the area has a file, elseARCHITECTURE.md§ Conventions & gotchas; - load-bearing decision + rationale →
DECISIONS.md(one decision per entry, title ≤ 120 chars, newest first) plus one row at the top ofdecisions/INDEX.md(date, area, status, ≤ 100-char summary); a reversal is a new entry + flipping the old row's status tosuperseded→<date>— bodies are never rewritten; - repeatable procedure → a skill in
.claude/skills/. The worklog keeps only the one-time story.
- always-true rule →
- Run
scripts/ve-check.shbefore committing the docs — it catches heading drift, size budgets, hook truncation, missing index rows and machine-local paths.
Template
Start the file at session start and fill it in as you work, not retroactively at the end.
# YYYY-MM-DD — <Title> (Session N, branch if any) — <author>
**Goal:** [one sentence — what and why]
## Skills Loaded
> Load skills for *everything*, no matter how small — this prevents
> "I didn't know that existed" mistakes.
- `skill-name` — [why it applies]
## Invariants declared (only if this session introduces new always-true rules)
- **INV-X:** [rule — payments, auth, rate limiting, data privacy… anywhere
"almost right" ships a bug. Promote to ARCHITECTURE.md at session end.]
## Progress
- [what got done, with commits]
## Closing the Loop
> Done means *seen working*, not "code looks right".
- [ ] `{{TYPECHECK_CMD}}` clean
- [ ] `{{TEST_CMD}}` passes
- [ ] build/bundle step (if a client was touched)
- [ ] live E2E per the `live-e2e-verify` skill (if API/DB/storage/AI touched)
- [ ] [feature-specific verification]
**Blocked by:** [specific: "API returns 403 and I don't know why", not "stuck"]
**Next:** [what the next session should pick up — and WHO: "anyone" or "needs <name> because <reason>"]
## Surprises
- [unexpected behavior / wrong assumption — capture in real time, then promote if durable]
## Decisions
> Capture here as they happen; promote the load-bearing ones to DECISIONS.md at session end.
| Decision | Rationale |
|---|---|Protocol rules
- Update in real-time. Capture decisions and surprises as they happen, not batched at session end — context is freshest right after you hit the issue.
- Atomic commits, one logical change each; codebase working at every commit.
- Close the loop. Don't check a Closing-the-Loop box until you've run it and seen it pass this session.
- End with "Next". Future sessions — yours or a collaborator's — start from STATUS.md + your Next line. Write it for someone who wasn't here.
- Drop sections that don't apply — cut sections, not specificity.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

