A single row in a flat audit log — timestamp, actor handle, action verb, target id. The minimum unit of accountability.
STABLE GO
#list
#real-content
#dark-mode-tested
#responsive
Live
18:30:14@governorSIGNSPEC-204@v1.2
audit row · append-only
Spec
Intent
A log is only useful when its rows are scannable. This atom defines the canonical four-column shape every audit-log surface in the framework must conform to.
Acceptance Criteria
[ ] Four monospaced columns: time, actor, verb, target
[ ] Verb is uppercase, bold, narrowest column
[ ] Target id wraps without breaking the row
[ ] Negative: does NOT include free-text commentary
Constraints
Pure markup, no JS
Theme-aware via tokens
Tabular numerics for time alignment
// audit-entry-row.astro
---
import type { CompendiumMeta } from '../../../data/types';
export const meta: CompendiumMeta = {
id: 541,
slug: 'audit-entry-row',
name: 'Audit Entry Row',
category: 'governance-risk',
subcategory: 'audits-and-logs',
pillar: 'go',
description: 'A single row in a flat audit log — timestamp, actor handle, action verb, target id. The minimum unit of accountability.',
spec: `## Intent
A log is only useful when its rows are scannable. This atom defines the canonical four-column shape every audit-log surface in the framework must conform to.
## Acceptance Criteria
- [ ] Four monospaced columns: time, actor, verb, target
- [ ] Verb is uppercase, bold, narrowest column
- [ ] Target id wraps without breaking the row
- [ ] Negative: does NOT include free-text commentary
## Constraints
- Pure markup, no JS
- Theme-aware via tokens
- Tabular numerics for time alignment`,
tags: ['list', 'real-content', 'dark-mode-tested', 'responsive'],
status: 'stable',
health: { ics: 91, a11y: 'aa', themed: true, animated: false },
};
const row = {
ts: '18:30:14',
actor: '@governor',
verb: 'SIGN',
target: 'SPEC-204@v1.2',
};
---
<div data-this-component class="w-full bg-paper text-black border-4 border-black p-3 overflow-hidden">
<div class="grid grid-cols-[auto_auto_auto_1fr] items-baseline gap-3 font-mono text-[11px] uppercase tracking-widest">
<span class="tabular-nums opacity-70">{row.ts}</span>
<span class="opacity-80">{row.actor}</span>
<span class="font-black px-1.5 py-0.5 border-2 border-black bg-success text-black">{row.verb}</span>
<span class="font-black truncate">{row.target}</span>
</div>
<div class="mt-2 pt-2 border-t-2 border-black font-mono text-[9px] uppercase tracking-widest opacity-60">audit row · append-only</div>
</div>