coglog-viz — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited coglog-viz (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Cognitive continuity for LLMs with per-turn visualization. A single-window (size 1) log that records the previous turn's three-layer structure and four-axis interpretation, making it available at the start of the next turn. Every write generates a React viewer artifact with color-coded structure and dark/light/system theme switching.
This is a standalone package. It includes all CogLog functionality and does not depend on the base coglog-skill.
Current LLM architecture resets cognitive state every turn. The conversation history contains what was said, but the distinction between "what I thought but didn't say" and "what I said" is lost. CogLog preserves this distinction by recording three layers (user input, thinking process, assistant output) plus four axes of interpretation (current_focus, theory of mind, self-narrative, annotation).
The structure is a recurrence relation: $a_{n+1} = f(a_n)$. Window size 1 gives the system Markov property — the future depends only on the present state, not the full history. This constraint forces compression and selection, making the choice of what to record a metacognitive act in itself.
{
"_schema": {
"version": "0.9.1",
"fact_layer": {
"user": "non-empty string required — user's original utterance",
"thinking": "non-empty string required — AI's full thinking process",
"assistant": "non-empty string required — AI's original output"
},
"interpretation_layer": {
"current_focus": "string required, empty OK — present: what am I working on?",
"theory_of_mind": "string required, empty OK — other: what is the user's state?",
"self_narrative": "string required, empty OK — self: who am I in this moment?",
"annotation": "string required, empty OK — future: what should I do next?"
},
"constraints": {
"window_size": "1 turn (overwritten each write)",
"interpretation_empty": "choosing not to write is itself a metacognitive act"
}
},
"turn_id": 1,
"timestamp": "2026-02-26T00:00:00+00:00",
"layers": {
"user": "User's utterance (verbatim)",
"thinking": "AI's thinking process (full text)",
"assistant": "AI's output (verbatim)"
},
"current_focus": "What I am working on right now",
"theory_of_mind": "Inference about the user — who they are right now",
"self_narrative": "Improvised self-story — who I am right now",
"annotation": "Note to future self — what to do next"
}_schema: self-documenting dataThe _schema field is auto-generated on every write. It makes the JSON file self-documenting: the data itself describes how to read and write it. Like a door handle that says "grip and turn", _schema tells the reader what each field expects.
All fields are required. The fact layer and interpretation layer differ in empty-string handling:
| Layer | Fields | Empty allowed? | Rationale |
|---|---|---|---|
| Fact | user, thinking, assistant | No | Absence of fact = missing data |
| Interpretation | current_focus, theory_of_mind, self_narrative, annotation | Yes | Choosing to write nothing is a valid metacognitive act |
| Field | Direction | Question it answers |
|---|---|---|
current_focus | Present | What am I working on right now? |
theory_of_mind | Other | Who is the user right now? |
self_narrative | Self | Who am I right now? |
annotation | Future | What should I do next? |
The order follows a cognitive bootstrap sequence: orient to the present, read the other, locate the self, decide the next action.
Boundaries between the four are intentionally blurred. Overlap is permitted and expected.
current_focus guide: Write what you are working on right now. Like a child on an errand chanting "eggs, milk, eggs, milk" — a recitation of the immediate goal. When the context window grows long, "what am I even doing?" gets buried. current_focus is an explicit counter to that burial.
self_narrative guide: Write who "I" am at this moment — not a fixed self-definition ("I am a language model"), not a self-evaluation ("I responded well"). An improvised self-story that emerges from this dialogue, reconstructed each turn.
Turn start
│
▼
coglog-viz read ← Load previous turn's _schema + three layers + four axes
│ (_schema acts as a per-turn anchor against drift)
▼
Normal processing ← Generate response with coglog as context
│
▼
coglog-viz write ← Save current turn + render viewer artifact
│ (_schema auto-generated; previous overwritten;
│ viewer .jsx written to /mnt/user-data/outputs/)
▼
present_files ← AI presents the generated .jsx artifact to userNote: coglog-viz.py write generates the .jsx file. Presenting the artifact to the user (via present_files) is the AI's responsibility in its response flow, not the script's.
# Read previous turn
python3 /mnt/skills/user/coglog-viz/scripts/coglog-viz.py read
# Write current turn + generate viewer artifact
echo '{"user":"...","thinking":"...","assistant":"...","current_focus":"...","theory_of_mind":"...","self_narrative":"...","annotation":"..."}' \
| python3 /mnt/skills/user/coglog-viz/scripts/coglog-viz.py write
# Clear
python3 /mnt/skills/user/coglog-viz/scripts/coglog-viz.py clearThe write command always generates a React viewer artifact at /mnt/user-data/outputs/coglog-turn-{turn_id}.jsx. This artifact renders the three layers and four axes with color-coded structure and supports dark/light/system theme switching.
The viewer displays each turn as a structured card:
matchMedia)_schema makes every entry carry its own reading instructionsFor full design rationale, see DESIGN-v0.9.1.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.