Engagement setup
Skill cynco-labs/ai-accounting-skills/engagement-accounting/skills/engagement-setup
Agent-native accounting skills for Claude Code — folder dump → books → Beancount + Fava. MPERS, smart intake, hard gates.
npx -y skills add cynco-labs/ai-accounting-skills --skill engagement-setupAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 29 days oldThe repository was created 29 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Write engagement_state and workspace for a known client/period. Use when new engagement or setup books.
SKILL.md
3.2 KB, 779 tokens by cl100k_base, as published. Nobody here has run it
/engagement-setup
Purpose
Lock in engagement context after (or with) document-first discovery.
Preconditions
shared/guardrails.mdshared/operator-lens.md- Firm profile if present (defaults only)
- If folder dump / unknown entity → run
smart-intakefirst, then return here to formalize
Route
| Situation | Action |
|---|---|
| User gave legal name + period + clear docs | Setup directly (below) |
| User: “accounting for this folder” / no name | smart-intake first |
engagement_state.json exists | resume-engagement |
Workflow
1. Scan client folder
Banks, invoices, payslips, prior FS, SSM, tax files. Prefer facts from files over questions.
2. Entity identification
From SSM / bank account title / prior FS / smart-intake inferences:
- Legal name, registration number (only if on a doc — never invent)
- Entity type
- Address / activities if present
Load references/entity_types.md or jurisdiction pack.
3. Framework selection (derive, don’t quiz)
| Entity | Framework | Tax form |
|---|---|---|
| Berhad (public) | MFRS | Form C |
| Sdn Bhd | MPERS | Form C |
| PLT | MPERS | Form PT |
| Sole prop | Accrual S21A | Form B |
| Partnership | Accrual S21A | Form P |
| Koperasi | MCA | Form TF |
| Trust | Varies | Form TP |
Only ask if entity type is still ambiguous after docs.
4. Financial year
Prefer statement date coverage + prior FS. Soft-confirm if incomplete year.
5. Completeness (honest, not scary)
Blockers for full-year final FS:
- Full-year bank statements (or accepted limited period)
- Clear reporting entity identity
Not first-turn questions — note as gaps:
- Payslips, FAR, inventory, loans, prior FS
6. COA
Entity template + optional industry overlay from payee patterns (trading vs services). Soft default; user rarely needs to choose.
7. Operator + depth on state
Set operator and engagement_type (shared/operator-lens.md):
- Infer from language + firm profile, or one soft-ask if missing
- Default depth for thin setup:
bookkeeping_onlyunless user asked year-end / tax
8. README + engagement_state.json
Per references/engagement_state.schema.json and shared/agent-runtime.md.
Include:
## Inferences
| Field | Value | Confidence | Evidence |
Required on state: operator, engagement_type (and classify_depth when known).
9. Engagement card
# Engagement: [Legal name]
- Operator: owner | bookkeeper | firm
- Depth: bookkeeping_only | year_end | …
- Entity / framework / tax form
- FY / coverage limitations
- Status: ready | provisional | blocked
- Next: extract banks → classify → …
Question budget
After smart-intake, setup should usually ask zero new questions. If something critical is still open, ≤2 questions total (operator counts if still unknown).
Completion
Done when: workspace exists, engagement_state.json valid against schema, entity/period/framework/operator/depth recorded (may be provisional).
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.