From tax-bunyip
Verifies a company's status and its ABN/ACN/GST registration through READ-ONLY registry lookups (ABR/ASIC), with ABN (mod-89) and ACN (complement-mod-10) check digits re-derived locally so a malformed or transposed identifier is refused before any network call. Emits the corporate-trustee ASIC obligation set — annual-review-fee due date (registration anniversary), registered office, current officeholders, and the Director ID requirement — drawn from config; the fee figure comes from rates.yaml and renders provisionally. The lookup is behind an injectable read-only fetcher (no real network in tests). Routes through the tax-bunyip hub. Asserts no figure; the registered tax agent — or the lodging individual — finalises every figure.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tax-bunyip:asic-abn-lookupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Routes through the **tax-bunyip** foundation hub — read its standing instructions
Routes through the tax-bunyip foundation hub — read its standing instructions
first (skills/tax-bunyip/SKILL.md). This spoke (scripts/spokes/asic_abn.py)
does two jobs and asserts no final position. Every line is [accountant to confirm].
verify_registration(identifier, kind=..., fetcher=...):
scripts/checksums.py — clean-room
from the published ABR/ASIC specs). ABN = mod-89 (subtract 1 from the leading
digit before weighting); ACN = complement-mod-10. A structurally invalid
identifier is refused offline — no network call is attempted for a number
that cannot be real (the routed-refusal disposition).fetcher —
the read-only registry lookup (ABR for ABN/GST, ASIC for company status/ACN).
The spoke makes no network call of its own: tests pass a fake/canned
fetcher, real lookups pass an ABR/ASIC GET client. No real network ever runs
in a test.The fetcher contract is GET-only — a write is structurally absent. The result
carries the RegistryRecord plus [accountant to confirm] flags (registration
not found, status not active, GST status to confirm — the register can lag).
corporate_obligation_set(entity, ...) emits the concrete set for a body
corporate (a company or a corporate trustee). Gated twice (fail-loud):
company / corporate_trustee);produces allow-list must include asic_obligations — for a
corporate trustee this is its ONLY tax-adjacent output (no company
return, no BAS, no Div 7A position in its own right).It returns:
| Item | Source |
|---|---|
| Annual-review fee | rates.yaml → asic_annual_review_fee (pending → provisional, CPI-indexed each 1 July) |
| Annual-review due date | the registration anniversary, derived from the entity's establishment_date (single source of truth for dates) |
| Registered office | config/asic.* per-entity registry facts |
| Current officeholders | config/asic.* per-entity registry facts |
| Director ID requirement | always surfaced — every director must hold a Director ID (obtained personally via ABRS, not assigned by ASIC) |
A placeholder/missing registered office or Director ID is flagged, never
fabricated — fill the gitignored overlay (config/asic.local.yaml).
config/asic.sample.yaml carries the obligation set and per-entity registry
facts with placeholder identifiers/addresses/names only — the committed file
publishes clean (a real ABN/ACN would trip the secret scanner). Real values live
in config/asic.local.yaml (gitignored). The fee figure is never duplicated
here — it lives in config/rates.yaml.
anthropic / no LLM SDK; no real network in tests (injectable fetcher).<digits:N> shape, never the digit string; never a real name/address.rates.yaml.scripts/spokes/asic_abn.py)Canonical invocation: ${CLAUDE_PLUGIN_ROOT}/scripts/run.sh scripts/spokes/asic_abn.py
verify_checksum(value, kind=...) → {kind, valid, shape} (re-derived, offline)verify_registration(identifier, kind=..., fetcher=...) → {checksum_valid, lookup_attempted, record, flags, ...}corporate_obligation_set(entity, ...) → the obligation set + fee + due date + registry facts + flagsRegistryRecord(...) — the read-only lookup result type the fetcher returnsnpx claudepluginhub reebz/tax-bunyip --plugin tax-bunyipProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.