@yardstick/cli
v0.5.1
Published
Yardstick command-line interface for agent authentication, public API operations, and local stdio MCP access.
Downloads
1,573
Readme
Interview Planner
A comprehensive interview management platform for streamlining the hiring process.
CI/CD Status
Features
- Interview scheduling and management
- Candidate evaluation and scoring
- Multi-tenant organization support
- Real-time collaboration features
- Comprehensive reporting and analytics
Technology Stack
- Frontend: React, TypeScript, Vite
- Backend: Supabase (PostgreSQL, Edge Functions)
- Testing: Vitest, Playwright
- CI/CD: GitHub Actions
- Deployment: Automated via GitHub Actions
Getting Started
Prerequisites
- Node.js 20.x for local test parity
- npm or yarn
- Supabase CLI
Installation
- Clone the repository:
git clone https://github.com/yardsticklucas/interview-planner.git
cd interview-planner- Install dependencies:
npm ci- Set up environment variables:
cp .env.example .env.local
# Edit .env.local with your Supabase credentials- Start the development server:
npm run devRunning Tests
# Run the supported local main suite
npm test
# Run the wrapped main suite directly
npm run test:all
# Run explicitly quarantined tests
npm run test:quarantine
# Run tests with coverage
npm run test:coverage
# Clean up stale local Vitest processes and gate locks
npm run test:cleanup
# Run the single-fork diagnostic flow for known offenders
npm run test:doctor
# Update test baseline
npm run test:update-baselineThe main suite auto-discovers new *.test.* and *.spec.* files under src/ and supabase/. To keep a known-bad file out of the blocking suite, rename it with a quarantine suffix such as .quarantined.test.ts or .quarantined.spec.tsx, then run it with npm run test:quarantine. Use npm run test:raw only for low-level Vitest debugging. The supported local test runtime is Node 20, matching the primary PR test workflow.
Database Migrations
# Apply migrations locally
npx supabase db reset --local
# Create a new migration
npx supabase migration new <migration_name>
# Check migration sync status
./scripts/monitor-migration-sync.sh devLocal resets also load supabase/seed.sql, which creates deterministic
local-only test logins for browser QA. Use password localdev123! with
[email protected], [email protected], or [email protected]; see
AGENTS.md for the intended plan/feature coverage of each account.
API access
Yardstick exposes a public REST API under /v1/* for programmatic
candidate creation, applications, events, and audit log access. Org
admins mint tokens (publishable ys_pk_… for browsers, secret
ys_sk_… for servers; both come in _test_ and _live_ modes) from
/settings/api-tokens.
- API quickstart — rendered at
/docs/api/quickstart; covers minting a token, the first request, and pagination. - Full reference — rendered at
/docs/api, powered by Scalar over the OpenAPI 3.1 document at/v1/openapi.json. - Implementation skeleton — for engineers adding a new resource: per-request pipeline, env vars, test fixtures, and a checklist for new functions.
Yardstick CLI package
The npm package identity is @yardstick/cli and it exposes one binary:
yardstick. It intentionally does not expose a default ys alias because
that name can collide with YAMLScript tooling. This first packaged slice is
macOS-only for local secure storage and uses macOS Keychain profiles.
Install the package and use the remote Yardstick API service by default:
npm install -g @yardstick/cli
yardstick login --mode test --label "Local agent"
yardstick whoami
yardstick tasks list --limit 25
yardstick status
yardstick logoutPackaged login opens https://portal.yardstick.team for approval. Without
--scopes, it requests the current secret scope catalog with the configured
default scopes preselected; pass --scopes to request a narrower set.
Packaged read commands default to api-origin at
https://api.yardstick.team. Local or raw Supabase fallback targets require
explicit read-command flags such as --endpoint-mode supabase-functions and
--base-url.
CI and other noninteractive shells may set YARDSTICK_API_TOKEN explicitly,
but copied tokens and plaintext credential files are not the normal local
interactive flow.
Repository-local package validation:
npm run build:cli
npm pack --dry-run
npm run package:cli:validate
npm run package:cli:smokenpm run package:cli:smoke packs the CLI, installs it into a temporary
prefix, and verifies the installed yardstick binary without using a
repository checkout or tsx.
Documentation
Contributing
Please read our contributing guidelines before submitting pull requests.
License
[License information]
Support
For issues and questions:
- Create an issue in GitHub
- Contact the team via Slack channels mentioned in workflow documentation
