audit-docs
Audit cross-document coherence: docs ↔ roadmap ↔ code ↔ fix index ↔ issues. Finds drift — features in docs/ not in the roadmap (or vice versa), fix-index…
Append a structured entry to the project's session log (`docs/LOGS.md`): what was done this session, files touched, decisions taken, and the next step — so the next session (or another person) can pick up the thread without re-reading git history. Run it before `/clear`, before
$ npx -y skills add gtrabanco/agentic-workflow --skill log-session --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/log-sessionContext preview
The summary Claude sees to decide when to auto-load this skill.
Append a structured entry to the project's session log (`docs/LOGS.md`): what was done this session, files touched, decisions taken, and the next step — so the next session (or another person) can pick up the thread without re-reading git history. Run it before `/clear`, before
name: log-session user-invocable: true version: 2.2.0 argument-hint: "[note to prepend to the entry]" author: "Gabriel Trabanco <gtrabanco@users.noreply.github.com>" license: MIT description: > Append a structured entry to the project's session log (`docs/LOGS.md`): what was done this session, files touched, decisions taken, and the next step — so the next session (or another person) can pick up the thread without re-reading git history. Run it before `/clear`, before closing Claude Code, or at any natural stopping point. On Claude Code and want hand-tuned per-skill model/effort tiers? Install the `#claude` branch instead (`npx skills add gtrabanco/agentic-workflow#claude`) — see the README. This branch is model-agnostic: the skill inherits whatever model and effort your agent session is already using. Triggers: "log this session", "log-session", "write a session log", "journal what we did", "record this session before I clear", "save the session summary".
Capture the *why* and the *what-next* of a working session — the context that git history alone never records. A commit says what changed; a session log says what you were trying to do, what you decided, and where to resume.
Deliberately cheap (`sonnet`/`medium`): this is structured summarization, not judgment. It must never reach for an expensive model.
✓ The entry was APPENDED to docs/LOGS.md (file edited, not just drafted) with accurate git facts ✓ `bun scripts/session-close.mjs close` RAN and exited 0 (or 2, with the leftover paths named) — the entry is committed, not left riding along ✓ No past entry was edited ✓ Artifact language: explicit user instruction > the project's declared docs language > English. The CONVERSATION language never decides — a Spanish prompt still produces English PRs/issues/commits/SPECs unless one of the first two says otherwise ✓ The closing `→ Next:` block is printed as the ABSOLUTE last output
About to end the turn with any box unchecked? The turn is NOT done — complete the missing box first (weak models drop end-of-document duties; this list is first on purpose).
to wipe context; capture it first.
to be able to resume cold.
This is the *manual, rich* counterpart to the lightweight auto-logging hooks the `template/` ships (see `template/.claude/`). The hooks capture the mechanical facts for free on every exit; this skill writes the thoughtful entry when you want one.
Per the agent guide's **Workflow conventions** + **documentation map**, locate the session log. Default path: `docs/LOGS.md`. If the documentation map names a different location, use that. If no log file exists yet, create it from the shape in `template/docs/LOGS.md` (a short header + the entry format below) and say so.
If a session-start marker exists (`.claude/.session-*.start`, written by the template's SessionStart hook), read it to bound the session precisely — it holds the HEAD sha and start time at session open.
1. **Establish the session boundary.**
uncommitted work.
what happened this session, and corroborate with `git log` of the recent commits and `git status` / `git diff --stat` for uncommitted changes.
2. **Gather the mechanical facts** (cheaply, with git):
3. **Write the narrative** — the part only you can add:
actually got done.
would otherwise be lost). Link related docs/issues.
thread, the open question. Write it so a cold reader knows exactly where to resume.
claim about a PR/issue state is checked with the forge in the same turn (`gh pr view <N> --json state,mergedAt`) before it is written. A log that records a state the forge contradicts is a false record that the next review must chase (fix #157's F14). Write the actual state: "PR #N open, awaiting the human merge".
4. **Render the entry** — the mechanical facts (timestamp, branch, commit count and range, files touched) are computed for you:
bun scripts/session-close.mjs render --summary "<what this session did>" \
--decisions "<key choices + why>" --next "<the concrete next step>"It writes nothing: append its output to the **end** of `docs/LOGS.md` (append-only, chronological) with your editing tool. Omit `--decisions` / `--next` when there is nothing real to record — the script drops the line rather than emitting an empty one. A user-supplied note is prepended to the Summary.
5. **Close the session** — commit the entry and prove the tree is clean:
bun scripts/session-close.mjs close
It refuses unless `docs/LOGS.md` was **appended to** (a rewritten or truncated log is not a session entry), commits that one file as `docs(log): <the appended summary>`, and reports every path still uncommitted: exit `0` clean, `2` the named leftovers are still dirty, `1` refused. Do not open a PR just for a log entry, and never `git add -A` here — a concurrent conversat
A reusable set of agent skills that run a disciplined, doc-driven workflow for building software with agents — from idea/issue to a reviewed, classified, merge-ready change.
Repo: gtrabanco/agentic-workflow
Audit cross-document coherence: docs ↔ roadmap ↔ code ↔ fix index ↔ issues. Finds drift — features in docs/ not in the roadmap (or vice versa), fix-index…
Audit a whole PR against the delivery contract and return MERGE-READY or evidenced blockers with the full URL. Consumes the current review-change REVIEW-PASS…
Turn a raw idea or existing feature into a designed product SPEC by completing entity, integration, role, and expectation closure. Upserts never destroy…
Discover repository evidence and write a frozen Normalized Repository State. Produces verified repository evidence and keeps facts, decisions, planned work,…
Internal shared owner of evidence-grounded authoring: the fixed claim/authority/evidence/freshness/unknown row, the ordered inventory-evidence-draft-readiness…
Implement all remaining phases of a planned feature/fix by default, or one explicit P<n>, with frozen acceptance, phase-local gates, commits, recovery, and…