agentsclimarketplace

Engagement setup

Skill cynco-labs/ai-accounting-skills/accounting-engagement/skills/engagement-setup

Agent-native accounting skills for Claude Code — folder dump → books → Beancount + Fava. MPERS, smart intake, hard gates.

Install
npx -y skills add cynco-labs/ai-accounting-skills --skill engagement-setup

Assembled 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

  1. shared/guardrails.md
  2. shared/operator-lens.md
  3. Firm profile if present (defaults only)
  4. If folder dump / unknown entity → run smart-intake first, then return here to formalize

Route

SituationAction
User gave legal name + period + clear docsSetup directly (below)
User: “accounting for this folder” / no namesmart-intake first
engagement_state.json existsresume-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)

EntityFrameworkTax form
Berhad (public)MFRSForm C
Sdn BhdMPERSForm C
PLTMPERSForm PT
Sole propAccrual S21AForm B
PartnershipAccrual S21AForm P
KoperasiMCAForm TF
TrustVariesForm 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_only unless 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.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.