Personal attendance, payslip, salary, and related self-service tasks on the user's own Hilan account. Trigger on shaon, attendance, clock in/out, payslip, salary slip, work hours, תלוש, תלוש שכר, משכורת, דוח נוכחות, corrections log, forgot to clock in, forgot to report, or any request about the user's own Israeli employer self-service portal.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add avivsinai/skills-marketplace --skill shaon --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Shaon?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/avivsinai-shaon)More formats (shields.io, HTML) on the badges page.
---
name: shaon
version: 0.8.3
description: >
Personal attendance, payslip, salary, and related self-service tasks on the
user's own Hilan account. Trigger on shaon, attendance, clock in/out, payslip,
salary slip, work hours, תלוש, תלוש שכר, משכורת, דוח נוכחות, corrections log,
forgot to clock in, forgot to report, or any request about the user's own
Israeli employer self-service portal.
---
# Shaon
Claude Code skill for the `shaon` repo and binary.
## Tool Selection
- Prefer the **MCP server** when a tool already covers the domain operation.
- Fall back to the **CLI** for local-machine or interactive operations:
`auth`, `payroll payslip view`, `reports show`, `cache refresh attendance-types`,
`serve`, and `completions`.
- Use this **skill** to pick the right surface, the right command/tool, and the
right safety flow.
## Human-attested writes
All write commands (`attendance report today/day/range`, `attendance auto-fill`, `attendance resolve`) submit under the user's identity against their real employer's system. When driving these, ALWAYS:
1. Run with `--dry-run` (the default) first.
2. Show the resulting preview to the user.
3. Require the user to explicitly confirm in the conversation before rerunning with `--execute`.
Never autonomously rerun a write with `--execute`. Writes must be treated as user-authorized actions and must not be submitted without explicit user confirmation.
## CLI Entry Point
If working from a repo checkout, prefer:
```bash
scripts/run.sh <command> [args]
```
If installed globally:
```bash
shaon <command> [args]
```
## First-Time Setup
Create `~/.shaon/config.toml`:
```toml
subdomain = "mycompany"
username = "123456789"
payslip_folder = "/path/to/payslips" # optional
payslip_format = "%Y-%m.pdf" # optional
```
Then authenticate:
```bash
shaon auth
```
If stored credentials are stale and you want a deterministic refresh prompt:
```bash
shaon auth --force-prompt
```
## Pick The Right Read Command
| User intent | Use |
|-------------|-----|
| "what's my current month state?" | `shaon attendance overview --json` |
| "show me the raw calendar / what did Hilan record per day?" | `shaon attendance status --month YYYY-MM` |
| "what errors do I need to fix?" | `shaon attendance errors --month YYYY-MM` |
| "what attendance types can I report?" | `shaon attendance types` |
| "what absence symbols mean?" | `shaon attendance absences` |
| "show the analyzed hours sheet" | `shaon reports sheet` |
| "show the manual correction log / audit trail" | `shaon reports corrections` |
| "show a named Hilan report page" | `shaon reports show <name>` |
| "download my payslip" | `shaon payroll payslip download --month YYYY-MM` |
| "open my payslip locally" | `shaon payroll payslip view --month YYYY-MM` |
| "how much did I earn recently?" | `shaon payroll salary --months N` |
`attendance overview` is usually the best first move for an agent because it bundles identity, summary, errors, missing days, and suggested actions.
JSON contract notes:
- `attendance status --json` returns `{ month, employee_id, days[] }` with `day_name`, `entry_time`, `exit_time`, `attendance_type`, `total_hours`, `has_error`, `error_message`, and `source`.
- `attendance overview --json` returns `missing_days` as `{ date, day_name }` objects.
- `suggested_actions` is keyed by `kind`; fields are top-level, not nested inside a generic `params` object.
- `attendance overview --json --detailed` adds a `days[]` array using the same schema as `attendance status --json`.
## Write Commands
### Explicit reporting
| Intent | Command |
|--------|---------|
| clock in now | `shaon attendance report today --in` |
| clock out now | `shaon attendance report today --out` |
| report one explicit day | `shaon attendance report day YYYY-MM-DD --type "regular" --hours 09:00-18:00` |
| report a range | `shaon attendance report range --from YYYY-MM-DD --to YYYY-MM-DD --type "regular" --hours 09:00-18:00` |
| auto-fill missing days in a month | `shaon attendance auto-fill --month YYYY-MM --type "regular" --hours 09:00-18:00` |
| resolve an existing error day | `shaon attendance resolve YYYY-MM-DD --type "regular" --hours 09:00-18:00` |
### Safety Model
- Every write is **preview-only by default**.
- The agent should show the preview summary to the user before rerunning with `--execute` or `execute: true`.
- The agent must wait for explicit user confirmation before any live submit.
- `attendance report range` and `attendance auto-fill` skip Fri/Sat unless explicitly overridden.
- `attendance auto-fill` is capped at `--max-days 10` by default to prevent accidental bulk edits.
## MCP Coverage
Current MCP tools cover:
- `shaon_status`
- `shaon_errors`
- `shaon_types`
- `shaon_clock_in`
- `shaon_clock_out`
- `shaon_fill`
- `shaon_auto_fill`
- `shaon_resolve`
- `shaon_payslip_download`
- `shaon_salary`
- `shaon_sheet`
- `shaon_corrections`
- `shaon_absences`
- `shaon_overview`
CLI-only features:
- `shaon auth`
- `shaon payroll payslip view`
- `shaon reports show <name>`
- `shaon cache refresh attendance-types`
- `shaon serve`
- `shaon completions`
## Agent Workflows
### Review the month first
```bash
shaon attendance overview --json
```
### Fix an attendance error safely
```bash
shaon attendance errors --month 2026-04 --json
shaon attendance resolve 2026-04-09 --type "regular" --hours 09:00-18:00
# After explicit user confirmation:
shaon attendance resolve 2026-04-09 --type "regular" --hours 09:00-18:00 --execute
```
### Fill a missing range safely
```bash
shaon attendance report range --from 2026-04-01 --to 2026-04-05 --type "regular" --hours 09:00-18:00
# After explicit user confirmation:
shaon attendance report range --from 2026-04-01 --to 2026-04-05 --type "regular" --hours 09:00-18:00 --execute
```
### Hebrew payslip workflow
```bash
shaon payroll payslip download --month 2026-03
shaon payroll payslip view --month 2026-03
```
### Sensitive recovery command
`shaon payroll payslip password --force-sensitive-output` prints the current Hilan account password in plaintext to standard output. It does not recover historical passwords used for PDFs encrypted before a password change. Output may be captured by shells, terminals, logs, remote sessions, screenshots, and agent transcripts. Run it only on a private interactive terminal you control.
## Troubleshooting
- **CAPTCHA**: the user must solve it in the browser first.
- **Type resolution fails**: run `shaon cache refresh attendance-types` or pass the numeric type code directly.
- **Session expired or stale stored credentials**: rerun `shaon auth --force-prompt` to verify and replace the stored password.
## Further Reading
- [README.md](../../README.md)
- [ARCHITECTURE.md](../../ARCHITECTURE.md)
- [PROTOCOL.md](../../PROTOCOL.md)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!