captain-log
SkillMonitoring & opsAppend to or read the captain's narrative log, decisions, friction, learning, milestones, observations, builds.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the captain-log skill
What this skill tells your AI
The instructions your AI receives, as published by the-agency-ai/the-agency in .claude/skills/captain-log/SKILL.md and read by ahel’s review.
Captain's Log
The captain's log is the narrative thread of a session. Distinct from handoffs (authoritative current state), transcripts (full dialogue), and flags (ephemeral observation queue) — the log captures what we discovered, what we built, what we decided as a rolling daily record. Append-only. Mined later for friction patterns and continual improvement.
Why this exists
Sessions lose their "why" the moment context compacts or the agent ends. Handoffs carry state; transcripts carry dialogue; flags carry open items. None of them carry the narrative — the decisions made, the friction hit, the things built, the things learned — in a form that accumulates across sessions and can be mined for patterns.
The log fills that gap:
- A decision entry lets future sessions see not just what was decided but that it was decided (and when).
- A friction entry is a seed for the next toolification cycle — friction is the raw material for framework evolution.
- A build entry pairs the "what" (a tool, skill, or rule shipped) with the "why" — rescuing intent that would otherwise evaporate.
- A learning entry captures surprises about the codebase, methodology, or principal's preferences for later sessions.
- A milestone entry marks significant progress — phase complete, plan complete, release shipped.
The richer the log, the more useful the mining. Log proactively; don't batch.
Required reading
Before running, Read the files listed in required_reading: frontmatter.
agency/REFERENCE/REFERENCE-AGENT-DISCIPLINE.md— Two Priorities + Over/Over-and-out. The log is a working-session practice; it sits inside the agent-discipline frame.
Usage
/captain-log <free text> # appended as observation (default)
/captain-log -c <category> <text> # appended with category
/captain-log --category <category> <text> # long form
/captain-log read # read today's log
/captain-log read YYYYMMDD # read a specific day
/captain-log list # list all log files
/captain-log path # print today's log file path
Categories: decision, friction, learning, milestone, observation (default), build.
Examples:
./agency/tools/captain-log "noticed agents kept cd-ing to main checkout"
./agency/tools/captain-log -c friction "permission prompt for chmod blocked agent boot"
./agency/tools/captain-log -c decision "QGRs go in workstream/quality-gate-reports/, not usr/"
./agency/tools/captain-log -c build "shipped /collaborate skill + tool + hookify warn"
./agency/tools/captain-log read
./agency/tools/captain-log read 20260406
Preconditions
- You are in a git repository with the agency tooling installed.
- Your principal sandbox exists at
usr/{principal}/captain/— the tool writes daily log files beneath it. - For a write, you know which category best fits the entry (default is
observationif unsure). - For a read (
read [YYYYMMDD]), the target day's file must exist — otherwise the tool reports "no log for that day."
The skill is append-only on writes and read-only on reads. Writes never rewrite earlier entries; running twice produces two entries.
Flow / Steps
Step 1: Decide write vs read
- If you just made a decision, hit friction, built something, learned something, reached a milestone, or want to capture a general observation — proceed as a write.
- If you want to review the narrative of the current day or a past day, or enumerate the corpus — proceed as a read (
read,read YYYYMMDD,list, orpath).
Step 2a: Write an entry
Invoke the tool with the entry text. Choose the category deliberately — the category is what makes the log mineable later:
./agency/tools/captain-log -c <category> "<entry text>"
- Use
-c observation(or omit-c) for general notes that don't fit another bucket. - Use
-c decisionwhen the entry is "we chose X over Y because Z" — future sessions read this to understand why the codebase looks the way it does. - Use
-c frictionwhen something got in the way — this is a toolification seed. - Use
-c learningwhen you learned something non-obvious — about the codebase, methodology, or principal preferences. - Use
-c milestonefor significant progress — phase complete, plan delivered, release shipped. - Use
-c buildwhen you shipped a tool, skill, hookify rule, or process change — pair "what" with "why."
The tool appends to today's file at usr/{principal}/captain/logs/captains-log-{YYYYMMDD}.md with an HH:MM:SS — category heading plus the entry body.
Step 2b: Read entries
read— read today's log.read YYYYMMDD— read a specific day's log.list— enumerate all log files.path— print today's log file path (for scripting or piping into another tool).
Step 3: Proceed with work
The log is a side-channel practice — it never blocks the work. Capture the entry, keep moving. The mining step happens later, at week-end or when friction patterns are being reviewed.
Failure modes
- Principal sandbox missing: tool errors with a path-not-found on
usr/{principal}/captain/logs/. Run/sandbox-initor create the directory. - Read for a day with no entries: tool reports "no log for that day" and exits non-zero. Confirm the date or use
listto see what exists. - Entry text contains shell metacharacters: quote the argument so the shell passes it intact. Unquoted entries with
&,|,;, or*will lose content. - Wrong category: log is append-only — there is no edit-in-place. File a new entry with a correction note, or leave it and move on (the mining step handles noise).
- Tool output suggests a bug: do not fix it here — report it via
/flagor/agency-issueperagency/REFERENCE/REFERENCE-AGENT-DISCIPLINE.md.
What this does NOT do
- Does not replace handoffs. Handoffs carry authoritative pickup state; logs carry narrative. A fresh session reads the handoff first, the log for color.
- Does not replace transcripts. Transcripts capture the full dialogue of a conversation; the log is curated narrative, not verbatim.
- Does not replace flags. Flags are a queue for open items; log entries are closed observations about work that already happened.
- Does not commit the log. The tool writes files; commit them via
/coord-commitor the session-lifecycle skills like any other coord artifact. - Does not dispatch, QG, or push. All three are out of scope — this is a single-agent journaling practice.
- Does not mine the log. Mining (extracting friction patterns, building toolification seeds) is a separate, later step — the log is the raw material, not the analysis.
Status
active (v2 migrated from v1 in the sister-repo V1→V2 migration). Stable surface; the underlying tool at agency/tools/captain-log has the same CLI it did pre-migration.
Related
/handoff— authoritative session pickup state; reads first, log reads for color./flag— ephemeral observation queue; route to discussion, log if the observation is closed./transcript— full dialogue capture; log is curated narrative, not verbatim./dispatch— cross-agent coordination; log captures local narrative, dispatches carry cross-agent findings.agency/tools/captain-log— the underlying tool this skill invokes.
OFFENDERS WILL BE FED TO THE — CUTE — ATTACK KITTENS!
Signals
- GitHub stars
- 55
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
captain-log- Source
- github.com/the-agency-ai/the-agency