onboard — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited onboard (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.
Run an extend op for a developer entering an unfamiliar repository. Extend their working context with a compact, evidence-backed map: what the project is, where execution starts, what areas are active, which commands are real, and which 2-3 files to read first.
The output is not a repo summary dump. It is an orientation artifact followed by an ask decision: explore an area, trace a feature, make a first change, or find where help is useful.
Apply:
NOT:
path: repository root; default current working directory.depth: quick | normal | deep; default normal.Normalize the root path first. Reject nonexistent paths. Preserve the requested depth in the output header.
Depth controls collection cost only; the synthesized orientation always uses the same seven sections.
Collect facts before explaining. Never fabricate a section from filenames alone. Use this native order:
package.json, pnpm-workspace.yaml, lerna.json, turbo.json, nx.json.Cargo.toml, [workspace], crates/*/Cargo.toml.go.mod, go.work, cmd/*, Makefile targets.pyproject.toml, setup.py, requirements*.txt, tox.ini, noxfile.py, libs/*/pyproject.toml, packages/*/pyproject.toml.pom.xml, .mvn/, build.gradle, build.gradle.kts, settings.gradle, settings.gradle.kts.Makefile, CMakeLists.txt, meson.build, configure.ac.find; headless equivalent:fd -d 3 -t d . "$ROOT" -E node_modules -E .git -E dist -E target -E out -E .next -E .nuxt -E __pycache__ -E coverage -E .cache -E vendor. If fd is absent: find "$ROOT" -maxdepth 3 -type d \( -name node_modules -o -name .git -o -name dist -o -name target -o -name out -o -name .next -o -name .nuxt -o -name __pycache__ -o -name coverage -o -name .cache -o -name vendor \) -prune -o -type d -print.
README*, CLAUDE.md, and AGENTS.md, capped at about 5KB each. Follow a one-line README redirect if it points to another Markdown file..github/workflows/*.{yml,yaml}, .gitlab-ci.yml, Dockerfile, docker-compose*.yml, Procfile, compose.yaml, and deploy manifests present at the root.git rev-parse --show-toplevelgit branch --show-currentgit rev-list --count HEADgit log -1 --format='%ci %h %s'git remote get-url origingit shortlog -sn --all -- .git --no-pager log --since='180 days ago' --format='' --name-only -- .codegraph_explore("entry points main binaries commands framework configs tests").codegraph_search for main, App, server, cli, route handlers, exported package entry points.codegraph_callees or codegraph_explore naming the entry symbol and likely module names.codegraph_files for package/module boundaries.If no index exists, fallback to AST and text search:
ast-grep -p 'function main($$$) { $$$ }', ast-grep -p 'export default $$$', plus git grep -nE 'createServer|listen\(|commander|yargs|cac\(|vite|next|astro|svelte'.ast-grep -p 'fn main() { $$$ }', git grep -nE '^\[\[bin\]\]|^path\s*=|fn main\('.git grep -nE '^package main$|func main\('.git grep -nE 'if __name__ == .__main__.|console_scripts|click\.command|typer\.Typer|argparse'.git grep -nE 'public static void main|@SpringBootApplication|application.yml|plugins \{|mainClass'.fd '(test|spec|_test)\.(js|jsx|ts|tsx|rs|go|py|java|kt)$' "$ROOT".pack_codebase(directory="$ROOT", compress=true).npx -y repomix "$ROOT" --compress -o /tmp/onboard-repomix.xml.Use the digest to confirm stack, top-level modules, and naming conventions. Do not paste it into the final response.
Use the template in references/orientation.md. Keep the first pass concise; the target is a 2-3 minute read. Sections are ordered and named exactly:
After the orientation, read actual source before claiming architecture.
Read, in priority order:
bin, Cargo [[bin]], Go cmd/*, Python console script, or framework config.If fewer exist, read what exists and state the degradation. Tie the files together with file paths and concrete calls/imports. Avoid "likely" architecture except where labeled [INFERENCE].
Close the first turn with the ask tool. Use one axis, single-select, one Recommended option:
explore_area — Explore an area (Recommended for first-time onboarding): pick a directory/package and read its central exports plus most-imported file.trace_feature — Trace a feature: ask for the feature name, locate its entry point, trace call/import flow, deep-read 2-3 key files.first_change — Make a first change: ask for desired change, map risk using hotspots/owners/tests, identify exact files to inspect before editing.where_help — Where can I help?: combine hotspots, test gaps, stale docs, low-owner areas, and small cleanup candidates into file-level recommendations.If the ask tool is unavailable in the current harness, present the same four options as a numbered prompt and stop after the question.
[INFERENCE] and prefer no command.| Gate | Pass criteria | Blocking |
|---|---|---|
| Root resolved | Existing directory selected; depth is quick/normal/deep | Yes |
| Core collection | Manifest/README/structure/git/CI attempted with degradation noted | Yes |
| Native signals | Codegraph or AST/text fallback used for entry points and conventions | Yes |
| Repomix digest | MCP or CLI repomix attempted; failure recorded without blocking orientation | No |
| Seven sections | All applicable sections emitted in order; empty sections omitted only with reason | Yes |
| Deep read | At least one real source file read; target is 2-3 files | Yes |
| Commands grounded | Getting-started commands trace to manifest/CI/README/Makefile | Yes |
| Interaction | Ends with ask next-step options or numbered fallback prompt | Yes |
Use explicit certainty labels. HIGH means observed by tool output. MEDIUM means multiple independent weak signals. LOW means local inference required. Missing data is reported once at the affected section, not repeated throughout the tour.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.