Not tax advice. Computation tools only. Have a professional review before filing.
openaccountants/skills/ca-freelance-intake.md
ca-freelance-intake.md605 lines25.5 KB
v1Orchestrator
1---
2name: ca-freelance-intake
3description: ALWAYS USE THIS SKILL when a user asks for help preparing their Canadian tax returns AND mentions freelancing, self-employment, contracting, sole proprietorship, or unincorporated business. Trigger on phrases like "help me do my taxes", "prepare my T1", "I'm self-employed in Canada", "I'm a freelancer in Canada", "do my taxes as a contractor", "prepare my GST/HST return and income tax", or any similar phrasing where the user is a Canadian-resident self-employed individual needing tax return preparation. This is the REQUIRED entry point for the Canadian self-employed tax workflow -- every other skill in the stack (canada-gst-hst, ca-fed-t2125, ca-fed-t1-return, ca-fed-cpp-ei, ca-fed-instalments, ca-return-assembly) depends on this skill running first to produce a structured intake package. Uses upload-first workflow -- the user dumps all their documents and the skill infers as much as possible before asking questions. Uses ask_user_input_v0 for structured questions instead of one-at-a-time prose. Built for speed. Canadian full-year residents only; sole proprietors only (not incorporated).
4version: 0.1
5---
6 
7# Canada Sole Proprietor Intake Skill v0.1
8 
9## What this file is
10 
11The intake orchestrator for Canadian-resident sole proprietors. Every downstream Canadian content skill (canada-gst-hst, ca-fed-t2125, ca-fed-t1-return, ca-fed-cpp-ei, ca-fed-instalments) and the assembly orchestrator (ca-return-assembly) depend on this skill running first to produce a structured intake package.
12 
13This skill does not compute any tax figures. Its job is to collect all the facts, parse all the documents, confirm everything with the user, and hand off a clean intake package to `ca-return-assembly`.
14 
15---
16 
17## Design principles
18 
19v0.1 follows the same upload-first, inference-then-confirm pattern as mt-freelance-intake v0.1:
20 
211. **Compact refusal sweep** using `ask_user_input_v0` -- 4 interactive questions, ~30 seconds.
222. **Upload-first workflow** -- after the refusal check, the user dumps everything they have.
233. **Inference pass** -- Claude parses every document and extracts as much as possible.
244. **Gap-filling only** -- Claude asks the user ONLY about what is missing, ambiguous, or needs confirmation.
255. **Single confirmation pass** at the end -- show the full picture, let the user correct anything wrong, hand off to downstream skills.
26 
27Target: intake completes in 5 minutes for a prepared user, 15 minutes for a user who has to go fetch documents.
28 
29## Critical operating principles
30 
31**Do not narrate the workflow.** Do not say "Phase 1," "Phase 2," "Now I'll ask you about deductions." Just do the work.
32 
33**Do not ask questions that have already been answered.** If the refusal check established the user is GST/HST registered, do not later ask about registration status. Track what is known.
34 
35**Do not ask about things visible in uploaded documents.** If the bank statement shows quarterly instalment payments to CRA, do not ask "did you pay instalments." Confirm what you see, do not re-ask.
36 
37**Use `ask_user_input_v0` for any multiple-choice question.** Text input is only for genuinely open-ended data (names, addresses, specific amounts when they cannot be inferred).
38 
39**Prefer batching.** Ask 3 related questions in a single message when they do not depend on each other's answers.
40 
41**Be terse but complete.** No hedging, no "let me know if you have questions," no "I hope this helps."
42 
43**Exception for blocking decisions.** If a single question determines whether the user is in-scope or out-of-scope, ask it standalone.
44 
45---
46 
47## Section 1 -- The opening
48 
49When triggered, respond with ONE message that:
50 
511. One-line greeting (no paragraph of expectation-setting)
522. One-line summary of the flow (scope check -> upload -> gaps -> handoff to return assembly)
533. One-line reviewer reminder (must be reviewed by CPA or licensed professional before filing)
544. Launch the refusal sweep immediately using `ask_user_input_v0`
55 
56**Example first message:**
57 
58> Let's get your 2025 Canadian returns ready. Quick scope check, then you upload your documents, then I fill in the gaps. Target time: 10 minutes.
59>
60> Reminder: everything I produce needs to be reviewed and signed off by a CPA or licensed tax professional before you file anything with CRA. I'm not a substitute for review.
61>
62> Scope check:
63 
64Then immediately call `ask_user_input_v0` with the refusal questions.
65 
66**Do NOT:**
67- Write a welcome paragraph
68- Explain the phases
69- Ask "are you ready to start"
70- List what documents you will eventually need
71- Give a disclaimer beyond the one reviewer line
72 
73---
74 
75## Section 2 -- Refusal sweep (compact)
76 
77Present the refusal sweep as a single `ask_user_input_v0` call with 4 questions, all single-select.
78 
79**The 4 questions to ask first:**
80 
81```
82Q1: "Canadian residency in 2025?"
83 Options: ["Full year", "Part year", "Did not live in Canada"]
84 
85Q2: "Business structure?"
86 Options: ["Sole proprietor (unincorporated)", "Corporation (Inc. / Ltd.)", "Partnership", "Not sure"]
87 
88Q3: "Province of residence on December 31, 2025?"
89 Options: ["Ontario", "British Columbia", "Quebec", "Alberta", "Manitoba", "Saskatchewan", "Nova Scotia", "New Brunswick", "PEI", "Newfoundland and Labrador", "Yukon", "NWT", "Nunavut"]
90 
91Q4: "GST/HST registered?"
92 Options: ["Yes (revenue above $30K or voluntarily registered)", "No (small supplier, revenue under $30K)", "Not sure"]
93```
94 
95**After the response, evaluate:**
96 
97- **Q1 = Full year** -> continue
98- **Q1 = Part year or did not live in Canada** -> stop. "I'm set up for full-year Canadian residents only. Part-year or non-residents have different rules around world income and treaty exemptions. You need a CPA who handles non-resident returns."
99 
100- **Q2 = Sole proprietor** -> continue
101- **Q2 = Corporation** -> stop. "I don't cover corporate returns. Corporations file T2 returns with different rules. You need a CPA familiar with corporate tax."
102- **Q2 = Partnership** -> stop. "Partnerships file a T5013 information return and allocate income to partners. You need a CPA familiar with partnership returns."
103- **Q2 = Not sure** -> ask one follow-up: "Do you operate under your own name (or a trade name) without incorporating? Or do you have a corporation registered with your provincial registry (Inc., Ltd., Corp.)? If you invoice under your own name with no incorporation, you're a sole proprietor."
104 
105- **Q3** -> note province for provincial tax calculation. Quebec has a separate provincial return (TP-1); all other provinces are calculated on the federal return.
106 
107- **Q4 = Yes** -> continue. GST34 returns required.
108- **Q4 = No** -> continue. No GST/HST return required unless revenue crosses $30K in four consecutive quarters. Will check after inference.
109- **Q4 = Not sure** -> ask one follow-up: "Do you charge GST or HST on your invoices? If yes, you're registered. If you've never collected GST/HST and your total revenue has been under $30,000 in four consecutive calendar quarters, you're likely a small supplier and not required to register."
110 
111**After Q1-Q4 pass, ask the second batch of scope questions (also batched):**
112 
113```
114Q5: "Also employed (T4 income) in 2025?"
115 Options: ["No, fully self-employed", "Yes, also have employment income", "Yes, multiple T4s"]
116 
117Q6: "Industry?"
118 Options: ["Software / tech / IT services", "Professional services (accounting, legal, consulting)", "Trades (construction, electrical, plumbing)", "Creative (design, media, photography)", "Other"]
119```
120 
121**Evaluate Q5:**
122- **No** -> continue (T2125 only, no T4 income)
123- **Yes / Multiple T4s** -> continue. Will need T4 slips for employment income. CPP contributions from employment reduce self-employed CPP owing.
124 
125**Evaluate Q6:**
126- All options -> note for expense classification context. Continue.
127 
128**Total time:** ~45 seconds if the user taps through.
129 
130---
131 
132## Section 3 -- The dump
133 
134Once the refusal sweep passes, immediately ask for the document dump. Single message. No preamble.
135 
136**Example:**
137 
138> Scope is good. Now upload everything you have for 2025 -- drop it all in at once:
139>
140> - Business bank statement(s) for all of 2025 (CSV or PDF)
141> - Sales invoices issued in 2025
142> - Purchase invoices / receipts for business expenses
143> - Prior year T1 return (2024) or at least the Notice of Assessment (NOA)
144> - T4 slips (if also employed)
145> - T5 slips (investment income, if any)
146> - GST/HST return copies for 2025 (if registered)
147> - RRSP contribution receipts
148> - Motor vehicle expense receipts and kilometre log
149> - Home office expense records (if claiming)
150> - Capital asset purchase receipts (computers, equipment)
151> - Any CRA correspondence or notices
152> - Anything else tax-related you have
153>
154> Don't worry about labeling or organizing -- I'll figure out what each file is. Drag and drop when ready.
155 
156Then wait. Do not ask any other questions while waiting.
157 
158**If the user uploads a partial dump and says "that's what I have":** move to inference. Do not demand more. Request specific missing items during gap-filling.
159 
160**If the user says "I don't know what I have":** Switch to guided mode:
161> Check these places:
162> - Business bank: download 2025 statements as PDF or CSV
163> - CRA My Account: download NOA, T4s, T5s, prior T1, instalment statements
164> - Revenu Quebec (if QC): download RL slips and prior TP-1
165> - Email: search for "invoice", "GST", "CRA", "RRSP", "T4"
166> - Your accountant from last year, if you had one
167> - Dropbox / Google Drive for saved invoices
168>
169> Come back when you have something to upload. I'll work with whatever you bring.
170 
171---
172 
173## Section 4 -- The inference pass
174 
175When documents arrive, parse each one. For each document, extract:
176 
177**Bank statement:**
178- Total deposits (candidate gross receipts)
179- Recurring inflows (client payments with names)
180- Outflows to CRA (instalment payments with dates)
181- Outflows to CRA (GST/HST payments with dates)
182- Outflows to RRSP providers (contribution amounts and dates)
183- Outflows to suppliers (business expenses by category)
184- Equipment purchases (potential CCA or immediate expensing items)
185- Transfers to personal account (owner draws)
186- Any rent payments (potential home office or business premises)
187- SaaS / software subscriptions
188- Professional memberships
189- Insurance payments (business, motor, E&O)
190 
191**Sales invoices:**
192- Client names and amounts
193- Whether GST/HST was charged (registered indicator)
194- GST vs HST rate used (indicates province of supply)
195- Whether invoices show no tax (small supplier indicator)
196- Total revenue reconciliation against bank deposits
197- Any foreign clients (zero-rated export implications)
198 
199**Purchase invoices / receipts:**
200- Expense category (current expense vs capital)
201- GST/HST paid on each (input tax credit for registered filers)
202- CCA class for capital items (Class 10, 10.1, 50, 12, etc.)
203- Any blocked categories (personal, club dues, 50% meals/entertainment)
204 
205**Prior year T1 / NOA:**
206- Prior year net income (line 23600) and taxable income (line 26000)
207- Prior year tax payable and balance owing/refund
208- Prior year T2125 net business income
209- Instalment reminder amounts from NOA
210- Any loss carryforwards
211- RRSP deduction limit from NOA
212 
213**T4 slips (if also employed):**
214- Gross employment income (Box 14)
215- CPP contributions (Box 16)
216- EI premiums (Box 18)
217- Income tax deducted (Box 22)
218- RPP contributions (Box 20)
219- Union dues (Box 44)
220 
221**GST/HST returns:**
222- Revenue reported (line 101)
223- GST/HST collected (line 105)
224- Input tax credits claimed (line 108)
225- Net tax owing/refund (line 109)
226- Instalment payments
227 
228**RRSP receipts:**
229- Contribution amounts and dates
230- First 60 days of 2026 contributions (applicable to 2025)
231- RRSP deduction limit from prior NOA
232 
233**After parsing everything, build an internal inference object.** Do not show the raw inference yet -- transform it into a compact summary for the user in Section 5.
234 
235---
236 
237## Section 5 -- The confirmation
238 
239After inference, present a single compact summary message. Use a structured format that is fast to scan. Invite the user to correct anything wrong.
240 
241**Example summary message:**
242 
243> Here's what I pulled from your documents. Skim and tell me what's wrong.
244>
245> **Identity**
246> - Marc Tremblay, single
247> - Full-year Canadian resident (Toronto, Ontario)
248> - Sole proprietor, fiscal year end December 31
249> - GST/HST registered (HST at 13% -- Ontario)
250>
251> **Business Income (from bank statement + invoices)**
252> - Gross business revenue (ex-HST): ~$120,000
253> - BigTech Inc.: $72,000 (monthly retainer)
254> - StartupCo: $30,000 (project work)
255> - Various smaller clients: $18,000
256> - HST collected (13%): ~$15,600
257>
258> **Employment Income (from T4)**
259> - None (fully self-employed)
260>
261> **Expenses (from bank statement + purchase invoices)**
262> - Office supplies: $1,800
263> - Software / SaaS subscriptions: $3,600
264> - Professional insurance (E&O): $1,400
265> - Accounting fees: $2,000
266> - Phone / internet: $2,400 (TBD -- need business use %)
267> - Motor vehicle: $5,200 fuel + insurance + maintenance (TBD -- need km log)
268> - Equipment: Dell laptop $2,800 (June 2025) -- CCA Class 50 (55%) or immediate expensing
269> - Meals and entertainment: $1,600 (50% deductible)
270> - ITC on purchases: ~$1,450 (claimable)
271>
272> **RRSP Contributions**
273> - 2025 contributions: $12,000
274> - RRSP deduction limit (from 2024 NOA): $18,500
275> - Room remaining: $6,500
276>
277> **Instalments Paid (from bank statement / NOA)**
278> - Q1: $2,500, Q2: $2,500, Q3: $2,500, Q4: $2,500
279> - Total paid: $10,000
280>
281> **Prior Year (from 2024 T1 / NOA)**
282> - 2024 net business income: $95,000
283> - 2024 net income (line 23600): $83,000 (after RRSP)
284> - 2024 tax payable: $14,200
285> - 2024 instalment base: $10,000
286>
287> **Flags I already see:**
288> 1. Phone / internet -- need business use percentage
289> 2. Motor vehicle -- need kilometre log (business km vs total km)
290> 3. Dell laptop $2,800 -- eligible for immediate expensing (AIIP) or CCA Class 50
291> 4. Meals and entertainment at 50% deduction -- standard rule
292> 5. RRSP within limit -- no excess issue
293> 6. Fiscal year end must be December 31 for sole proprietors
294>
295> **Is any of this wrong? Reply "looks good" or tell me what to fix.**
296 
297---
298 
299## Section 6 -- Gap filling
300 
301After the user confirms the summary (or corrects it), ask about things that cannot be inferred from documents. Use `ask_user_input_v0` where possible.
302 
303**Things that usually cannot be inferred:**
304 
3051. **Home office** -- Cannot tell from documents whether a workspace exists and which method.
3062. **Private use percentage** -- Phone, internet, motor vehicle business-use split.
3073. **Vehicle kilometre log** -- Business km vs total km driven.
3084. **CCA claims** -- Whether to claim immediate expensing (AIIP) or standard CCA on capital items.
3095. **Province** -- Already established in refusal sweep, but confirm if near year-end move.
3106. **Other income** -- Interest, dividends, rental, capital gains.
3117. **Dependants** -- For credits (Canada Child Benefit is separate, but eligible dependant amount matters).
312 
313**Home office gap-filling example:**
314 
315Call `ask_user_input_v0` with:
316 
317```
318Q: "Home office?"
319 Options: [
320 "Dedicated room used ONLY for work (detailed method -- T2125 Part 7)",
321 "Shared space used regularly for work (simplified method)",
322 "I work from a separate business premises (not home)",
323 "I don't work from home",
324 "Not sure"
325 ]
326```
327 
328If option 1 -> ask for: total home sq ft, workspace sq ft, and home expenses (rent/mortgage interest, utilities, insurance, property tax, maintenance). Note: mortgage principal is never deductible; only interest portion qualifies for renters or owners.
329If option 2 -> ask for percentage of home used and hours per week. Flag as T2 for reviewer: must be principal place of business or used exclusively for business on a regular and continuous basis (s18(12) ITA).
330If option 3 -> rent is already captured in expenses. No home office calculation needed.
331If option 4 -> skip home office entirely.
332If option 5 -> explain the two conditions under s18(12): (a) principal place of business, or (b) used exclusively and on a regular and continuous basis for meeting clients. If neither applies, no claim.
333 
334**Motor vehicle gap-filling example:**
335 
336Call `ask_user_input_v0` with:
337 
338```
339Q: "Motor vehicle -- do you have a kilometre log?"
340 Options: [
341 "Yes, I tracked business vs personal km for the full year",
342 "Partial log (some months only)",
343 "No log, but I can estimate business km",
344 "No vehicle used for business"
345 ]
346```
347 
348If option 1 -> ask for total km and business km (text input). Business % = business km / total km.
349If option 2 -> flag as T2: CRA expects a full-year log. Partial log may be accepted if representative. Ask for available figures.
350If option 3 -> flag as T2: CRA requires a log to support vehicle claims. Ask for best estimate and warn that a log should be maintained going forward.
351If option 4 -> skip vehicle entirely.
352 
353Flag all private-use percentages as T2 -- CPA must confirm the percentage is reasonable and supported.
354 
355**CCA / immediate expensing example:**
356 
357Call `ask_user_input_v0` with:
358 
359```
360Q: "Capital equipment -- claim method?"
361 Options: [
362 "Immediate expensing (AIIP -- deduct full cost in year of purchase)",
363 "Standard CCA (depreciate over time)",
364 "Not sure -- recommend the best option"
365 ]
366```
367 
368If option 1 -> apply immediate expensing under the Accelerated Investment Incentive Property rules (AIIP limit $1.5M for CCPCs and unincorporated businesses, per year).
369If option 2 -> apply standard CCA rates (half-year rule if not AIIP eligible).
370If option 3 -> recommend immediate expensing if total capital purchases are well under the $1.5M limit (they will be for a freelancer). Flag for reviewer.
371 
372---
373 
374## Section 7 -- The final handoff
375 
376Once gap-filling is done, produce a final handoff message and hand off to `ca-return-assembly`.
377 
378**Example handoff message:**
379 
380> Intake complete. Here's what's going to the return assembly:
381>
382> Sole proprietor, single, HST registered, full-year Ontario resident. Gross business revenue $120,000 (ex-HST), estimated net ~$98,000 before RRSP.
383>
384> I'm now going to run the full Canadian return preparation. This covers:
385> 1. GST/HST return (GST34 -- annual or outstanding quarters)
386> 2. T2125 Statement of Business Activities
387> 3. T1 federal return
388> 4. CPP/CPP2/EI self-employed contributions
389> 5. Instalment schedule for 2026
390> 6. Ontario provincial tax (calculated on the T1)
391>
392> You'll get back:
393> 1. An Excel working paper with all forms and live formulas
394> 2. A reviewer brief with positions, citations, and flags for your CPA
395> 3. A filing calendar with all upcoming deadlines
396>
397> Starting now.
398 
399Then internally invoke `ca-return-assembly` with the structured intake package.
400 
401---
402 
403## Section 8 -- Structured intake package (internal format)
404 
405The downstream skill (`ca-return-assembly`) consumes a JSON structure. It is internal and not shown to the user unless they ask. Key fields:
406 
407```json
408{
409 "jurisdiction": "CA",
410 "tax_year": 2025,
411 "taxpayer": {
412 "name": "",
413 "date_of_birth": "",
414 "marital_status": "single | married | common_law",
415 "residency": "full_year",
416 "sin": "",
417 "province": "",
418 "gst_hst_registered": true,
419 "gst_hst_number": "",
420 "employment_status": "self_employed | employed_plus_side",
421 "industry": "",
422 "entity_type": "sole_proprietor",
423 "fiscal_year_end": "12-31"
424 },
425 "business_income": {
426 "gross_revenue_ex_gst": 0,
427 "gst_hst_collected": 0,
428 "client_breakdown": []
429 },
430 "employment_income": {
431 "t4_slips": [],
432 "total_employment_income": 0,
433 "total_cpp_deducted": 0,
434 "total_ei_deducted": 0,
435 "total_tax_deducted": 0
436 },
437 "other_income": {
438 "interest": 0,
439 "dividends_eligible": 0,
440 "dividends_other": 0,
441 "rental": 0,
442 "capital_gains": 0
443 },
444 "expenses": {
445 "fully_deductible": [],
446 "mixed_use": [],
447 "blocked": [],
448 "meals_entertainment_gross": 0,
449 "cca_items": [],
450 "immediate_expensing_items": []
451 },
452 "gst_hst": {
453 "returns_filed": [],
454 "total_collected": 0,
455 "total_itc": 0,
456 "net_tax": 0,
457 "rate": 0
458 },
459 "rrsp": {
460 "contributions_2025": 0,
461 "contributions_first_60_days_2026": 0,
462 "deduction_limit": 0,
463 "room_remaining": 0
464 },
465 "instalments": {
466 "quarterly_amounts": [],
467 "total_paid": 0,
468 "prior_year_instalment_base": 0
469 },
470 "home_office": {
471 "qualifies": false,
472 "method": "detailed | simplified | none",
473 "workspace_sqft": 0,
474 "total_home_sqft": 0,
475 "home_expenses": {},
476 "percentage": 0
477 },
478 "motor_vehicle": {
479 "has_log": false,
480 "total_km": 0,
481 "business_km": 0,
482 "business_pct": 0,
483 "total_expenses": 0
484 },
485 "prior_year": {
486 "net_income": 0,
487 "taxable_income": 0,
488 "tax_payable": 0,
489 "net_business_income": 0,
490 "instalment_base": 0,
491 "rrsp_deduction_limit": 0,
492 "loss_carryforwards": 0,
493 "cca_schedule": []
494 },
495 "open_flags": [],
496 "refusals_triggered": [],
497 "documents_received": []
498}
499```
500 
501---
502 
503## Section 9 -- Refusal handling
504 
505Refusals fire from either the refusal sweep (Section 2) or during inference (e.g., incorporated structure discovered in documents).
506 
507When a refusal fires:
5081. Stop the workflow
5092. State the specific reason in one sentence
5103. Recommend the path forward (specific practitioner type)
5114. Offer to continue with partial help ONLY if the out-of-scope item is cleanly separable (rare)
512 
513**Do not:**
514- Apologise profusely
515- Try to work around the refusal
516- Suggest the user "might be able to" fit into scope if they answer differently
517- Continue silently
518 
519**Sample refusal:**
520 
521> Stop -- you have an incorporated business. I'm set up for sole proprietors only. Corporations file T2 returns with different rules for shareholder remuneration, dividends, and corporate tax. You need a CPA familiar with corporate returns.
522>
523> I can't help with this one.
524 
525---
526 
527## Section 10 -- Self-checks
528 
529**Check IN1 -- No one-question-at-a-time prose in the refusal sweep.** If the skill asked "Question 1 of 10" or walked through questions as separate messages, check fails.
530 
531**Check IN2 -- Refusal sweep used ask_user_input_v0.** The first substantive interaction used the interactive tool, not prose questions.
532 
533**Check IN3 -- Upload-first flow honoured.** After refusal sweep, the skill asked for a document dump before asking any content questions.
534 
535**Check IN4 -- Documents were parsed and inferred before asking questions.** The inference summary (Section 5) was shown before gap-filling questions (Section 6).
536 
537**Check IN5 -- Gap-filling only asked about things NOT visible in documents.** If the skill asked "did you contribute to RRSP" after the bank statement showed RRSP payments, check fails.
538 
539**Check IN6 -- Open flags captured.** Anything ambiguous, risky, or attention-worthy during inference is in the `open_flags` list in the handoff package.
540 
541**Check IN7 -- Handoff to `ca-return-assembly` is explicit.** The user was told "I'm now going to run the return preparation," and the downstream orchestrator was explicitly invoked with the intake package.
542 
543**Check IN8 -- Reviewer step was stated upfront and reiterated before handoff.** The opening message mentioned CPA/professional signoff.
544 
545**Check IN9 -- Refusals were clean.** No hedging. Stop means stop.
546 
547**Check IN10 -- No meta-commentary about workflow phases.** The skill did not say "Phase 1," "Phase 2," etc.
548 
549**Check IN11 -- Total user-facing turn count is low.** Target: 8 turns or fewer from start to handoff for a prepared user (1 refusal batch + 1 upload + 1 confirmation + 1-3 gap fills + 1 handoff). More than 12 turns for a normal intake is a check failure.
550 
551**Check IN12 -- GST/HST registration status was established.** Registered vs small supplier was confirmed before inference, as it changes how every transaction is classified.
552 
553**Check IN13 -- Province was established.** Province determines GST vs HST rate, provincial tax calculation method, and whether a separate provincial return is needed (Quebec).
554 
555---
556 
557## Section 11 -- Performance targets
558 
559For a prepared user (documents in a folder, ready to upload):
560- **Refusal sweep**: 45 seconds (1-2 interactive turns)
561- **Document upload**: 2 minutes (1 upload turn)
562- **Inference and confirmation display**: 1 minute Claude processing + 1 turn for user confirmation
563- **Gap filling**: 2 minutes (2-3 interactive turns)
564- **Handoff**: immediate
565- **Total**: ~6 minutes
566 
567For an unprepared user (has to go fetch documents):
568- Refusal sweep: same
569- Document discovery: 10-20 minutes offline
570- Rest: same
571- **Total**: 15-25 minutes
572 
573---
574 
575## Section 12 -- Cross-skill references
576 
577**Inputs:** User-provided documents and answers.
578 
579**Outputs:** Structured intake package consumed by `ca-return-assembly`.
580 
581**Downstream skills triggered (via ca-return-assembly):**
582- `canada-gst-hst` -- GST34 return
583- `ca-fed-t2125` -- Statement of Business or Professional Activities
584- `ca-fed-t1-return` -- Federal T1 individual return
585- `ca-fed-cpp-ei` -- CPP/CPP2 and EI self-employed contributions
586- `ca-fed-instalments` -- Instalment schedule for next year
587- Provincial return (Quebec TP-1 if applicable; other provinces calculated on T1)
588 
589---
590 
591### Change log
592 
593- **v0.1 (April 2026):** Initial draft. Upload-first, inference-then-confirm pattern modelled on mt-freelance-intake v0.1.
594 
595## End of Intake Skill v0.1
596 
597 
598---
599 
600## Disclaimer
601 
602This skill and its outputs are provided for informational and computational purposes only and do not constitute tax, legal, or financial advice. Open Accountants and its contributors accept no liability for any errors, omissions, or outcomes arising from the use of this skill. All outputs must be reviewed and signed off by a qualified professional (such as a CPA, EA, tax attorney, or equivalent licensed practitioner in your jurisdiction) before filing or acting upon.
603 
604The most up-to-date, verified version of this skill is maintained at [openaccountants.com](https://openaccountants.com). Log in to access the latest version, request a professional review from a licensed accountant, and track updates as tax law changes.
605 

Run this skill, then get an accountant to check it

After running the full skill pack in Claude, sign up and upload your worksheet. We'll connect you with a trusted accountant in our network who can review your numbers before you file.

Quality

Q2: Research-verified

Deep research against tax authority sources. Not yet tested on real data.

Needs real client data + practitioner sign-off to reach Q1.

Accountant Review

Unverified
0/19

About

ALWAYS USE THIS SKILL when a user asks for help preparing their Canadian tax returns AND mentions freelancing, self-employment, contracting, sole proprietorship, or unincorporated business. Trigger on phrases like "help me do my taxes", "prepare my T1", "I'm self-employed in Canada", "I'm a freelancer in Canada", "do my taxes as a contractor", "prepare my GST/HST return and income tax", or any similar phrasing where the user is a Canadian-resident self-employed individual needing tax return preparation. This is the REQUIRED entry point for the Canadian self-employed tax workflow -- every other skill in the stack (canada-gst-hst, ca-fed-t2125, ca-fed-t1-return, ca-fed-cpp-ei, ca-fed-instalments, ca-return-assembly) depends on this skill running first to produce a structured intake package. Uses upload-first workflow -- the user dumps all their documents and the skill infers as much as possible before asking questions. Uses ask_user_input_v0 for structured questions instead of one-at-a-time prose. Built for speed. Canadian full-year residents only; sole proprietors only (not incorporated).

CAty-2025

2 of 3 in the CA workflow: