proposal-filing — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited proposal-filing (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.
Create a new Lorekeeper proposal ticket end-to-end.
~/Code/lorekeeper/git config user.name and user.email must be setAlways use the GitHub Issues-based script — this works from any git state (no need to pull latest):
cd ~/Code/lorekeeper
./scripts/next-ticket-number.sh -mThis queries GitHub Issues for the highest existing LKPR-N and returns the next one, e.g. LKPR-43. Also available as machine-parseable:
./scripts/next-ticket-number.sh # just "LKPR-43"Do NOT rely on the local git state — you may not have the latest main branch, leading to duplicate ticket numbers.
cp backlogs/TEMPLATE.md backlogs/LKPR-N-<short-slug>.mdFill in frontmatter:
---
id: LKPR-N
title: Short descriptive title
type: feature # feature | bug | enhancement | research | chore
status: S:proposal
priority: P2:medium # P0:critical | P1:high | P2:medium | P3:low
sprint: ~
rice_score: ~
filed_by: Diana # whoever is filing
filed_date: YYYY-MM-DD
github_issue: ~ # fill after step 3
---Required body sections: Problem, Solution, Acceptance Criteria, Affected Files (Backend + Dashboard or _none_), Dependencies.
gh issue create \
--title "LKPR-N: <title>" \
--label "S:Proposal,P2: medium" \
--body "$(cat backlogs/LKPR-N-<slug>.md)" \
--repo Jessinra/LorekeeperImportant: GitHub label format has a space between colon and value (e.g. P2: medium, not P2:medium).
After creating the issue, add its number to the frontmatter. The pre-commit hook validates this field — it must be the numeric ID, not the full URL:
github_issue: 211 # number only, not "https://github.com/..."Then run Prettier — the pre-commit hook checks formatting and will reject unformatted files:
npx prettier --write --prose-wrap preserve backlogs/LKPR-N-<slug>.mdgit add backlogs/LKPR-N-<slug>.md
git commit -m "[LKPR-0] chore: add LKPR-N <short title>"Use [LKPR-0] prefix for chores/proposals (not [LKPR-dev] — that's for implementation work).
Direct pushes to main are blocked by the pre-push hook. Always use a feature branch:
# Create a feature branch for this proposal
git checkout -b proposal/LKPR-N-<slug>
# Commit is already done in step 5, so just push
git push origin proposal/LKPR-N-<slug>Then open a PR against main:
gh pr create \
--base main \
--head proposal/LKPR-N-<slug> \
--title "LKPR-N: <short title>" \
--body "Proposal ticket filed. Awaiting PM review." \
--repo Jessinra/LorekeeperDo not merge your own PR. Wait for PM (Akane) or Jason to review and approve.
github_issue in frontmatter (fill after step 3)npx prettier --write --prose-wrap preserve backlogs/LKPR-N-<slug>.mdtimeout parameter (300s)."S:Proposal,P2: medium" (space after colon, NOT P2:medium)main or chore/backlogtype: research and add an Open Questions section./scripts/next-ticket-number.sh -m early — it queries GitHub, so no local pull needed~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.