@hellyeah/assessment
v0.1.0
Published
Stage 0 workstation assessment: what local coding-agent history says about how someone works.
Keywords
Readme
hellyeah-assessment
Stage 0 CLI for understanding how a candidate works with coding agents. Reads 90 days of local history, produces five preliminary evidence bands, and prepares interview questions. The interviewer makes the hiring decision.
Installation
Requires Node.js 22.13+ to run. Release package: @hellyeah/assessment.
Once version 0.1.0 is published, no global installation is needed:
npx --yes @hellyeah/[email protected] --help
npx --yes @hellyeah/[email protected] hya_<invite-code>The default relay is https://hellyeah-assessment-relay-production.up.railway.app.
HYA_RELAY_URL overrides it; HTTPS is required except on localhost.
External candidate rollout requires the provider/hosting data terms and disclosure
checks in the relay runbook to be completed.
Interviewer (with HYA_SCREENER_TOKEN or a token file at
~/.config/hellyeah/screener-token):
npx --yes @hellyeah/[email protected] invite <ashby-candidate-uuid-or-url>
npx --yes @hellyeah/[email protected] status <ashby-candidate-uuid-or-url>
npx --yes @hellyeah/[email protected] status <ashby-candidate-uuid-or-url> --jsonThe invite prints a command pinned to the assessor's package version. The
candidate needs their invite code and Node.js, with no npm login or provider
credentials. HYA_CLI_PACKAGE overrides the npm package for internal tarball tests.
The CLI checks the invite before scanning, displays its disclosure, classifies instructions while asking three optional questions, submits the derived record, and prints a receipt. It displays disclosure rather than an additional consent prompt. Escape/Ctrl-C at a question cancels without submitting a record, though classification may already have received instruction text.
Expired invites stop before scanning. Used invites exit successfully without
scanning. An unavailable relay permits a local scan and bounded submission
retries; a failed submission saves a recovery record with restrictive permissions.
Rerun the same command when connectivity returns. A pre-existing recovery file
is never overwritten. --json skips prompts and prints the complete record on stdout; the disclosure
still appears on stderr before scanning or classification.
--screener shows the interviewer view for internal dogfooding.
Interviewer views from a saved record:
hellyeah-assessment report record.json
hellyeah-assessment followups record.jsonThe ashby command was replaced by server-side sync. --submit was removed;
all networking goes through the configured relay.
What is measured
Five independent bands cover adoption, framing, reuse, oversight, and setup. There is no aggregate hiring score. Claude Code and Codex offer the richest history. Cursor contributes timing, while OpenCode also contributes projects and token counts. Missing data remains unknown, never zero.
The relay receives human instruction text for classification, caps each instruction at 4,000 characters, and uses the pinned Jev model on at most 4,000 instructions. Prompts can contain names, code, and paths. The relay never stores or logs that instruction body; the provider's retention terms still need confirmation before external use. Agent responses, tool output, and repository contents are excluded. Derived records exclude instruction snippets and use salted project identifiers. Optional candidate answers/links are included.
Submitted records are self-reported and can be modified by a candidate. Their bands are evidence to discuss, not independently verified claims.
Development
npm ci
npm test
npm pack --dry-runnpm test typechecks, builds, and exercises synthetic history against a fake
relay. It never sends fixture data to production. For integration tests using the
real relay and SDK with local provider endpoints:
cd ../servers/hellyeah-assessment-relay
npm ci
npm test
npm run e2e| File | Responsibility |
| --- | --- |
| src/index.ts, src/commands/ | CLI routing, assessment flow, interviewer views |
| src/relay.ts | All client networking, token lookup, retries |
| src/record.ts | Shared record, safe parsing, screener notes |
| src/history.ts, src/machine.ts | Read-only local adapters and setup counts |
| src/text.ts, src/habits.ts | Human-text filtering and habit contract |
| src/analyse.ts | Deterministic measurements and rubric |
Read AGENTS.md before editing. See plan.md for the handover and
../servers/hellyeah-assessment-relay/VERIFICATION.md for validation boundaries.
Detailed assessor view
Run hellyeah-assessment report <record.json> --detailed to inspect the evidence
behind each band, Jev habit percentages, per-agent activity, configured tooling
and missing coverage. It reads the saved record without scanning or making any
network calls. Unknown values remain unknown. Agent tool activity is not proof
of human verification, and token totals are not billing figures.
Markdown conversation pack
hellyeah-assessment export-chat record.json --output assessment-chat.mdAttach the Markdown file to an agent to discuss your assessment. It includes band evidence, all derived metrics, classification coverage, candidate notes, interview questions, 40 discussion prompts, and a structured JSON appendix. It is not an export of the original conversation transcripts.
Use --no-notes to omit candidate notes and interest links, --no-metrics to
omit detailed measurements, or --no-json to omit the appendix. Exclusions apply
to the appendix too. Without --output, Markdown goes to stdout. Named files
are created with owner-only permissions and existing files are never overwritten.
Invite codes and submission/recovery metadata are excluded. Review the remaining
personal usage evidence before sharing with another agent or service.
Local packaging
npm ci
npm test
npm pack
npx --yes --package ./hellyeah-assessment-0.1.0.tgz hellyeah-assessment --help