agentsclimarketplace

Dossier

Skill stefanhoth/dossier/skills/dossier

Every agent leaves a paper trail. Tamper-evident JSONL audit logs for agentic workflows.

Install
npx -y skills add stefanhoth/dossier --skill dossier

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Tamper-evident audit logging for agentic workflows. Use when an agent takes consequential actions, delegates tasks to other agents, handles personal data, or operates in a context where a human principal needs to be able to reconstruct what happened and trust the record. Also use for: validating/verifying existing JSONL logs, building compliance export packages, managing schema versions.

SKILL.md

5.8 KB, as published. Nobody here has run it

dossier – Agent Event Log CLI

Why an agent should care about this

When you act autonomously — browsing, writing code, calling APIs, delegating to sub-agents — the human who authorized you often cannot watch in real time. dossier gives them a record they can trust after the fact:

  • Tamper-evident: SHA-256 hash chaining means any modification to a past event is detectable. The log is a commitment, not a suggestion.
  • Traceable across agents: Every event carries a traceId. If you hand a task to another agent, both of you write to the same trace. A reviewer can reconstruct the full conversation — who decided what, in what order, with what result.
  • Compliant by design: PII is tokenized out-of-band. If the workflow touched personal data, dossier privacy shred removes it without breaking the audit trail.

When to use

Use proactively when:

  • You are about to take an action with real-world side effects (API call, file write, database change, external message)
  • You are delegating a task to another agent — write a delegate event before handing off, and expect the sub-agent to write a result event when done
  • The operator has said the workflow must be auditable, reproducible, or GDPR-compliant
  • Something went wrong and you need to produce a compliance report

Use reactively when asked to:

  • Verify or validate an existing event log
  • Build an audit export package
  • Migrate events to a new schema version
  • Inspect the Dead Letter Queue for dropped events

Skip when:

  • The action is ephemeral and inconsequential (e.g. reading a public webpage with no side effects)
  • No human principal needs a trust anchor for what you did

Invocation

Prefer npx in agent environments — no version conflicts, always matches the published spec:

npx @stefanhoth/dossier <command>   # zero-install
dossier <command>                    # if installed globally

Invocation

dossier can be called as a global install or via npx — prefer npx in agent environments to avoid Node version conflicts:

npx @stefanhoth/dossier <command>   # zero-install, always latest
dossier <command>                    # if installed globally

Command reference

CommandPurpose
dossier initInitialize workspace (events/, schemas/, config)
dossier writeWrite event from stdin — validates, hash-chains, appends
dossier readRead/filter events by trace, seqNo range, or date
dossier validate <file>Validate JSONL against declared schema versions (read-only)
dossier verify <file>Verify hash-chain integrity (read-only)
dossier migrate <file> --to NForward-migrate events to schema version N
dossier schema list|add|deprecateManage schema version lifecycle
dossier audit exportBuild compliance package (JSONL + chain report + registry + DLQ)
dossier dlq list|inspect <n>Inspect events that failed validation
dossier privacy shred <subject>Delete PII for a subject (GDPR right to erasure)

Workflows

1. Log a consequential action

Before and after a side-effecting step, write events with the same traceId:

# Before: intent
echo '{"action":"send-email","status":"started","_meta":{"traceId":"wf-42","agent":"notifier"}}' \
  | npx @stefanhoth/dossier write

# After: outcome
echo '{"action":"send-email","status":"completed","output":{"messageId":"msg-99"},"_meta":{"traceId":"wf-42","agent":"notifier"}}' \
  | npx @stefanhoth/dossier write

2. Agent-to-agent handoff

Orchestrator writes a delegate event; sub-agent writes the result:

# Orchestrator
echo '{"action":"delegate","status":"completed","output":{"task":"summarise report"},"_meta":{"traceId":"wf-7","agent":"orchestrator"}}' \
  | npx @stefanhoth/dossier write

# Sub-agent (same traceId, different agent)
echo '{"action":"summarise","status":"completed","output":{"words":320},"_meta":{"traceId":"wf-7","agent":"summariser"}}' \
  | npx @stefanhoth/dossier write

3. Produce an audit report

npx @stefanhoth/dossier verify events/2026-05-30.jsonl    # integrity check
npx @stefanhoth/dossier validate events/2026-05-30.jsonl  # schema check
npx @stefanhoth/dossier dlq list                          # review dropped events
npx @stefanhoth/dossier audit export --output ./audit-pkg # full compliance package

4. Add a new schema version

npx @stefanhoth/dossier schema add 3     # scaffolds schemas/v3/
# Edit schemas/v3/schema.json and schemas/v3/migration.ts
npx @stefanhoth/dossier schema list      # confirm v3 is Draft
# Update registry.json to activate, then:
npx @stefanhoth/dossier schema deprecate 1  # retire v1 when safe

Reference docs

  • Full protocol spec: references/spec.md
  • Schema authoring guide: references/schema-authoring.md
  • Step-by-step audit runbook: references/audit-runbook.md

Guardrails

  • dossier verify and dossier validate are read-only — they never modify the log
  • Never edit historical events — the append-only log is the trust anchor; editing it breaks the chain
  • PII must be tokenized — never write raw personal data inline; use the privacy side-store
  • A chain break (exit 1 from verify) means the log may have been tampered with — stop the pipeline and investigate before proceeding
  • Deprecated schema versions must remain readable for ≥ 6 months before sunset

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.