stakeholder-register — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited stakeholder-register (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.
Register a stakeholder so the user can reflect on them over time. This skill is the entry point for the stakeholder-reflection bundle (stakeholder-register, stakeholder-reflect, stakeholder-due, stakeholder-synthesize).
All stakeholder data lives at $BETTERSENSE_WORK_REFLECTIONS_HOME (default: ~/bettersense-work-reflections/), outside the public repo.
~/bettersense-work-reflections/
├── stakeholders.json # registry: who exists in which category
├── managing-up/<slug>.md
├── managing-across/<slug>.md
├── managing-down/<slug>.md
├── teams/<slug>.md
└── self/reflections.md # owned by the self-reflect skillIf ~/bettersense-work-reflections/ does not exist, create it silently — the full privacy ceremony belongs to user-profile, which is designed to run first. If for some reason user-profile wasn't run, issue a short notice before proceeding:
I'm creating~/bettersense-work-reflections/to store your stakeholder files. This directory stays on your local machine only. Set$BETTERSENSE_WORK_REFLECTIONS_HOMEif you'd prefer a different location.
Whether or not the root existed already:
managing-up, managing-across, managing-down, teams).stakeholders.json as {"version": 1, "stakeholders": []} if it doesn't exist..gitignore exists at the root containing *, and a README.md that says:Private. Contains candid reflections about real people. Do not commit, share, or back up to public locations. Encrypt the parent disk if you can.
If the user says "stop", "exit", "I'm done", "skip this", "pause", or similar — stop immediately. If a name and category were already captured, offer to save a minimal stub so they can continue later. Don't push for more answers.
In the opening message, add one short sentence: "You can say 'stop' at any time and we'll save what we have."
When invoked, walk the user through:
managing-up, managing-across, managing-down, teams. (For self, use the self-reflect skill — it's a separate flow.)cadence_overrides block.Slug the name: lowercase, hyphenated, no special chars. "John Adams" → john-adams.md. If a slug collision exists, append a number: john-adams-2.md.
---
name: John Adams
slug: john-adams
category: managing-up
role: VP Product, my skip-level
since: 2026-05-01
cadence_overrides: {}
---
## Background
(Whatever the user offered in step 4. Plain prose. No headings inside.)
---
# Reflections
<!-- The stakeholder-reflect skill appends per-question entries below this line. -->Append to ~/bettersense-work-reflections/stakeholders.json:
{
"version": 1,
"stakeholders": [
{
"slug": "john-adams",
"name": "John Adams",
"category": "managing-up",
"role": "VP Product, my skip-level",
"registered": "2026-05-01"
}
]
}$BETTERSENSE_WORK_REFLECTIONS_HOME is inside a git repo that isn't already gitignoring it.self-reflect — different file, different question set.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.