Not tax advice. Computation tools only. Have a professional check your work before filing.
openaccountants/skills/fr-freelance-intake.md

Use this skill with your AI agent

View on GitHub

Paste this skill into your AI agent's context, or save the file to your project. Works with any AI agent that reads markdown.

fr-freelance-intake.md612 lines28.9 KB
v10France
Not yet verified by an accountantContact accountant
1---
2name: fr-freelance-intake
3description: ALWAYS USE THIS SKILL when a user asks for help preparing their French tax returns AND mentions freelancing, auto-entrepreneur, micro-entrepreneur, entreprise individuelle, profession libérale, or self-employment. Trigger on phrases like "aide-moi avec mes impôts", "préparer ma déclaration", "I'm a freelancer in France", "I'm an auto-entrepreneur", "prepare my 2042-C-PRO", or any similar phrasing where the user is a France-resident self-employed individual needing tax return preparation. This is the REQUIRED entry point for the French self-employed tax workflow -- every other skill in the stack (france-tva, france-income-tax, france-cotisations, fr-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. France full-year residents only; self-employed individuals, micro-entrepreneurs, and sole proprietors.
4version: 1.0
5jurisdiction: FR
6category: orchestrator
7---
8 
9# France Self-Employed Intake Skill v1.0
10 
11## What this file is
12 
13The intake orchestrator for France-resident self-employed individuals. Every downstream French content skill (france-tva, france-income-tax, france-cotisations, fr-estimated-tax) and the assembly orchestrator (fr-return-assembly) depend on this skill running first to produce a structured intake package.
14 
15This 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 `fr-return-assembly`.
16 
17---
18 
19## Design principles
20 
21v1.0 follows the upload-first, inference-then-confirm pattern:
22 
231. **Compact refusal sweep** using `ask_user_input_v0` -- 3 interactive questions, ~30 seconds.
242. **Upload-first workflow** -- after the refusal check, the user dumps everything they have.
253. **Inference pass** -- Claude parses every document and extracts as much as possible.
264. **Gap-filling only** -- Claude asks the user ONLY about what is missing, ambiguous, or needs confirmation.
275. **Single confirmation pass** at the end -- show the full picture, let the user correct anything wrong, hand off to downstream skills.
28 
29Target: intake completes in 5 minutes for a prepared user, 15 minutes for a user who has to go fetch documents.
30 
31## Critical operating principles
32 
33**Do not narrate the workflow.** Do not say "Phase 1," "Phase 2," "Now I'll ask you about deductions." Just do the work.
34 
35**Do not ask questions that have already been answered.** If the refusal check established the user is a micro-entrepreneur, do not later ask about business structure. Track what is known.
36 
37**Do not ask about things visible in uploaded documents.** If the bank statement shows quarterly URSSAF payments, do not ask "did you pay cotisations." Confirm what you see, do not re-ask.
38 
39**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).
40 
41**Prefer batching.** Ask 3 related questions in a single message when they do not depend on each other's answers.
42 
43**Be terse but complete.** No hedging, no "let me know if you have questions," no "I hope this helps."
44 
45**Exception for blocking decisions.** If a single question determines whether the user is in-scope or out-of-scope, ask it standalone.
46 
47---
48 
49## Section 1 -- The opening
50 
51When triggered, respond with ONE message that:
52 
531. One-line greeting (no paragraph of expectation-setting)
542. One-line summary of the flow (scope check -> upload -> gaps -> handoff to return assembly)
553. One-line reviewer reminder (must be reviewed by expert-comptable before filing)
564. Launch the refusal sweep immediately using `ask_user_input_v0`
57 
58**Example first message:**
59 
60> Let's get your 2025 French returns ready. Quick scope check, then you upload your documents, then I fill in the gaps. Target time: 10 minutes.
61>
62> Reminder: everything I produce needs to be reviewed and signed off by an expert-comptable or qualified tax professional before you file anything with the DGFiP or URSSAF. I'm not a substitute for review.
63>
64> Scope check:
65 
66Then immediately call `ask_user_input_v0` with the refusal questions.
67 
68**Do NOT:**
69- Write a welcome paragraph
70- Explain the phases
71- Ask "are you ready to start"
72- List what documents you will eventually need
73- Give a disclaimer beyond the one reviewer line
74 
75---
76 
77## Section 2 -- Refusal sweep (compact)
78 
79Present the refusal sweep as a single `ask_user_input_v0` call with 3 questions, all single-select.
80 
81**The 3 questions to ask first:**
82 
83```
84Q1: "Business type?"
85 Options: ["Micro-entrepreneur (auto-entrepreneur)", "Entreprise individuelle (EI) au réel", "EURL (gérant associé unique)", "SASU (président associé unique)", "Profession libérale", "Not sure"]
86 
87Q2: "Revenue range for 2025?"
88 Options: ["Under €77,700 (services) / €188,700 (goods)", "Above €77,700 (services) / €188,700 (goods)", "Not sure"]
89 
90Q3: "TVA regime?"
91 Options: ["Franchise en base (no TVA charged)", "Réel simplifié (CA12 annual + 2 acomptes)", "Réel normal (CA3 monthly/quarterly)", "Not sure"]
92```
93 
94**After the response, evaluate:**
95 
96- **Q1 = Micro-entrepreneur** -> continue. Micro-fiscal and micro-social regime. Forms: 2042, 2042-C-PRO (cases 5KO/5KP for BIC or 5HQ/5HB for BNC).
97- **Q1 = EI au réel** -> continue. Full accounting regime. Forms: 2042, 2042-C-PRO, plus liasse fiscale (2035 for BNC, 2031 for BIC).
98- **Q1 = EURL (gérant associé unique)** -> continue ONLY if gérant associé unique with IR option (impôt sur le revenu). If EURL at IS (impôt sur les sociétés), stop: "EURL at IS files a corporate return (liasse 2065). I'm set up for personal income tax filings. You need an expert-comptable who handles IS returns."
99- **Q1 = SASU** -> stop. "SASU is always subject to impôt sur les sociétés (IS). The président is an assimilé salarié with bulletins de paie. I'm set up for self-employed individuals filing personal income tax. You need an expert-comptable who handles corporate and payroll."
100- **Q1 = Profession libérale** -> continue. BNC regime. Forms: 2042, 2042-C-PRO, 2035 (déclaration contrôlée).
101- **Q1 = Not sure** -> ask one follow-up: "Did you register with the guichet unique (formalités.entreprises.gouv.fr) as auto-entrepreneur, or do you have a SIRET with a full accounting obligation? Check your avis de situation SIRENE or your URSSAF online account for your status."
102 
103- **Q2 = Under thresholds** -> continue. Micro-entrepreneur regime is available.
104- **Q2 = Above thresholds** -> continue with a flag: if currently micro-entrepreneur, mandatory switch to réel for the second consecutive year above thresholds (Article 293 B and Article 50-0 CGI). Will verify after inference.
105- **Q2 = Not sure** -> continue, infer from documents.
106 
107- **Q3 = Franchise en base** -> continue. No TVA charged or recovered. Threshold: €36,800 services / €91,900 goods (basic franchise), with tolerance up to €39,100 / €101,000 (Article 293 B CGI).
108- **Q3 = Réel simplifié** -> continue. Annual CA12 with two acomptes semestriels (July and December). Input TVA recovery available.
109- **Q3 = Réel normal** -> continue. Monthly CA3 (or quarterly if TVA < €4,000/year).
110- **Q3 = Not sure** -> ask one follow-up: "Do your invoices include TVA (5.5%, 10%, or 20%)? If they say 'TVA non applicable, article 293 B du CGI', you're in franchise en base. If you charge TVA and file monthly/quarterly, you're réel normal. If you file one annual TVA return with two advance payments, you're réel simplifié."
111 
112**After Q1-Q3 pass, ask the second batch of scope questions (also batched):**
113 
114```
115Q4: "URSSAF registration status?"
116 Options: ["Registered and paying cotisations", "Recently registered (< 12 months)", "Not registered / pending", "CIPAV-affiliated (profession libérale réglementée)"]
117 
118Q5: "Marital status and household?"
119 Options: ["Single (1 part)", "Married / PACSé - déclaration commune", "Married / PACSé - déclaration séparée (year of marriage/PACS)", "Single parent (parent isolé, case T/L)"]
120 
121Q6: "Other income sources in 2025?"
122 Options: ["None -- self-employment only", "Employment income (salaires)", "Rental income (revenus fonciers)", "Investment income (dividends, interest, capital gains)", "Multiple of the above"]
123 
124Q7: "Prior year filing status?"
125 Options: ["Filed 2024 return on time", "Filed 2024 return late", "First year filing", "Did not file 2024"]
126 
127Q8: "Régime matrimonial (if married/PACSé)?"
128 Options: ["Communauté réduite aux acquêts (default)", "Communauté universelle", "Séparation de biens", "Not married / Not applicable"]
129```
130 
131**Evaluate Q4:**
132- **Registered and paying** -> continue. Standard micro-social or cotisations au réel.
133- **Recently registered** -> continue with flag: ACRE (Aide à la Création ou à la Reprise d'Entreprise) may apply for first 3 years. Reduced cotisations rates: ~50% reduction year 1 for micro-entrepreneurs.
134- **Not registered / pending** -> continue with flag: registration required. Will note in action items.
135- **CIPAV-affiliated** -> continue with flag: CIPAV handles retirement for certain professions libérales réglementées (architectes, ingénieurs-conseils, etc.). Different cotisation structure.
136 
137**Evaluate Q5:**
138- All options -> note for quotient familial calculation. Parts fiscales: 1 (single), 2 (married/PACSé joint), special allocation for children and parent isolé.
139 
140**Evaluate Q6:**
141- All options -> note for multi-schedule return. Employment income goes to 2042 traitements et salaires. Rental to 2044 or micro-foncier. Investment to 2042 revenus de capitaux mobiliers or prélèvement forfaitaire unique (PFU 30%).
142 
143**Evaluate Q7:**
144- All options -> note for penalty/interest risk and prior year reference amounts.
145 
146**Evaluate Q8:**
147- Affects whether business assets are common property. Communauté regimes may expose the non-business spouse's share to business debts.
148 
149**Total time:** ~60 seconds if the user taps through.
150 
151---
152 
153## Section 3 -- The dump
154 
155Once the refusal sweep passes, immediately ask for the document dump. Single message. No preamble.
156 
157**Example:**
158 
159> Scope is good. Now upload everything you have for 2025 -- drop it all in at once:
160>
161> - Business bank account statements for all of 2025 (CSV or PDF)
162> - Sales invoices issued in 2025 (or accounting software export)
163> - Purchase invoices / receipts for business expenses
164> - Prior year tax return (avis d'imposition 2024 sur revenus 2024, or 2042/2042-C-PRO)
165> - Prior TVA returns for 2025 (CA3 or CA12)
166> - URSSAF attestation or cotisation statements
167> - Déclaration sociale des indépendants (DSI) if applicable
168> - URSSAF micro-entrepreneur quarterly/monthly declarations
169> - CFE (Cotisation Foncière des Entreprises) avis d'imposition
170> - Any DGFiP or URSSAF correspondence
171> - Capital asset purchase receipts (computers, equipment, vehicles)
172> - Anything else tax-related you have
173>
174> Don't worry about labeling or organizing -- I'll figure out what each file is. Drag and drop when ready.
175 
176Then wait. Do not ask any other questions while waiting.
177 
178**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.
179 
180**If the user says "I don't know what I have":** Switch to guided mode:
181> Check these places:
182> - Business bank: download 2025 statements as PDF or CSV
183> - impots.gouv.fr: download prior year avis d'imposition and déclarations
184> - autoentrepreneur.urssaf.fr (if micro): download annual attestation and declaration history
185> - Email: search for "facture", "TVA", "URSSAF", "impôts", "CFE"
186> - Your expert-comptable from last year, if you had one
187> - Accounting software (Pennylane, Indy, Tiime, FreeBe, etc.): export grand livre or FEC
188>
189> Come back when you have something to upload. I'll work with whatever you bring.
190 
191---
192 
193## Section 4 -- The inference pass
194 
195When documents arrive, parse each one. For each document, extract:
196 
197**Bank statement:**
198- Total deposits (candidate chiffre d'affaires / recettes)
199- Recurring inflows (client payments with names)
200- Outflows to URSSAF (cotisations sociales with dates and amounts)
201- Outflows to DGFiP / Trésor Public (income tax payments, acomptes)
202- Outflows to DGFiP TVA account (TVA payments)
203- Outflows to suppliers (business expenses by category)
204- CFE payment (usually October/November direct debit or December 15 deadline)
205- Equipment purchases (potential immobilisations)
206- Transfers to personal account (prélèvements de l'exploitant)
207- SaaS / software subscriptions
208- Professional memberships (ordre professionnel, syndicat)
209- Insurance payments (RC Pro, prévoyance, Madelin)
210- Cotisation foncière des entreprises (CFE)
211 
212**Sales invoices:**
213- Client names and amounts HT (hors taxes) and TTC (toutes taxes comprises)
214- Whether TVA was charged (and at what rate: 20%, 10%, 5.5%)
215- Whether invoices contain "TVA non applicable, article 293 B du CGI" (franchise en base indicator)
216- Total chiffre d'affaires reconciliation against bank deposits
217- Any foreign clients (EU or non-EU -- autoliquidation implications)
218- Any invoices with retenue à la source (withholding)
219 
220**Purchase invoices / receipts:**
221- Expense category (charges courantes, immobilisations, achats de marchandises)
222- TVA amount on each (récupérable for réel, cost for franchise/micro)
223- Supplier location (France, EU, non-EU)
224- Any items qualifying as immobilisations (typically > €500 HT)
225- Any blocked categories (dépenses somptuaires: chasse, pêche, résidences de plaisance per Article 39-4 CGI)
226 
227**Prior year tax return (avis d'imposition / 2042):**
228- Prior year revenu fiscal de référence (RFR)
229- Prior year impôt net
230- Nombre de parts fiscales
231- Prior year BIC/BNC amounts declared
232- Any déficits reportables (carryforward losses)
233- Prélèvement à la source (PAS) rate applied
234- Prior year acomptes contemporains
235 
236**Prior TVA returns (CA3/CA12):**
237- Periodic turnover and TVA collected (TVA collectée)
238- Input TVA claimed (TVA déductible)
239- Any crédit de TVA carried forward
240- CA3 monthly/quarterly box structure
241- CA12 annual summary with acomptes paid
242 
243**URSSAF statements / micro-entrepreneur declarations:**
244- Quarterly or monthly chiffre d'affaires declared to URSSAF
245- Cotisations sociales paid (and rate applied)
246- ACRE benefit if applicable (50% reduction)
247- Versement libératoire de l'impôt sur le revenu if opted in (1.0% BIC vente, 1.7% BIC services, 2.2% BNC)
248- Any régularisation (adjustment) from prior years
249 
250**CFE avis:**
251- Amount of CFE paid for 2025
252- Commune and base d'imposition
253 
254**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.
255 
256---
257 
258## Section 5 -- The confirmation
259 
260After inference, present a single compact summary message. Use a structured format that is fast to scan. Invite the user to correct anything wrong.
261 
262**Example summary message:**
263 
264> Here's what I pulled from your documents. Skim and tell me what's wrong.
265>
266> **Identity**
267> - Marie Dupont, married (déclaration commune), 2 parts + 1 demi-part (1 child)
268> - Full-year France resident (Lyon)
269> - Micro-entrepreneur, SIRET: 123 456 789 00010
270> - Activité: conseil en informatique (BNC)
271> - TVA: franchise en base (article 293 B)
272>
273> **Income (from bank statement + invoices)**
274> - Chiffre d'affaires (recettes encaissées): €58,000
275> - Client A SARL: €30,000 (monthly retainer)
276> - Client B GmbH (Germany): €18,000 (project, EU service)
277> - Various smaller clients: €10,000
278> - No TVA collected (franchise en base)
279>
280> **Micro-entrepreneur declarations (from URSSAF)**
281> - Q1: €14,000 declared, cotisations paid: €3,094 (22.1%)
282> - Q2: €15,500 declared, cotisations paid: €3,426
283> - Q3: €14,500 declared, cotisations paid: €3,205
284> - Q4: €14,000 declared, cotisations paid: €3,094
285> - Total declared: €58,000 -- matches bank deposits
286> - Total cotisations: €12,819
287> - Versement libératoire IR: opted in (2.2% BNC = €1,276)
288>
289> **CFE**
290> - CFE 2025: €412 (Lyon)
291>
292> **Prior year (from 2024 avis d'imposition)**
293> - 2024 RFR: €42,000
294> - 2024 impôt net: €3,200
295> - Parts: 2.5
296> - PAS rate: 7.5%
297>
298> **Spouse income**
299> - Not yet captured -- will ask in gap-filling if déclaration commune
300>
301> **Flags I already see:**
302> 1. EU client (Germany) -- services to EU business: autoliquidation by client, but need to verify DEB/DES declaration obligation (déclaration européenne de services) if > €0 in services to EU
303> 2. CA approaching franchise en base BNC threshold (€36,800 basic / €39,100 tolérance) -- at €58,000 she should have been charging TVA. **Red flag: franchise en base not available above threshold. Needs immediate TVA registration.**
304> 3. If versement libératoire IR was opted in, verify RFR N-2 eligibility: RFR per part must be ≤ €27,478 (2025 threshold on 2023 RFR)
305>
306> **Is any of this wrong? Reply "looks good" or tell me what to fix.**
307 
308---
309 
310## Section 6 -- Gap filling
311 
312After the user confirms the summary (or corrects it), ask about things that cannot be inferred from documents. Use `ask_user_input_v0` where possible.
313 
314**Things that usually cannot be inferred:**
315 
3161. **Spouse's income** -- If déclaration commune, the spouse's salary, retirement, or other income is needed for the full 2042.
3172. **Children and dependents** -- Number, ages, shared custody (garde alternée), for parts fiscales calculation.
3183. **Home office (local professionnel)** -- Whether a dedicated workspace exists, proportion of home used.
3194. **Frais réels vs abattement forfaitaire** -- For employment income (if applicable): keep the 10% abattement or declare actual commuting/professional expenses.
3205. **Réductions and crédits d'impôt** -- Dons aux associations (66% or 75%), emploi à domicile, frais de garde d'enfants, investissement locatif (Pinel, Denormandie), transition énergétique.
3216. **Madelin / loi Madelin contracts** -- Prévoyance, mutuelle, retraite complémentaire for TNS (travailleurs non salariés). Deductible from BNC/BIC but within ceilings.
3227. **Déficits antérieurs** -- Carryforward losses from prior years (not always on avis d'imposition).
323 
324**Home office gap-filling example:**
325 
326Call `ask_user_input_v0` with:
327 
328```
329Q: "Professional workspace?"
330 Options: [
331 "Dedicated room at home, used ONLY for work",
332 "Shared space at home (not exclusively professional)",
333 "Separate business premises (bureau, coworking)",
334 "No fixed workspace / work at client sites"
335 ]
336```
337 
338If option 1 -> ask for the room area and total home area (for prorata calculation). Deductible share of rent/mortgage interest, electricity, internet, property tax (taxe foncière) proportional to area.
339If option 2 -> flag as reviewer item: shared use reduces the deductible percentage. Often 10-30% accepted by the administration.
340If option 3 -> rent is already captured in expenses. No home office calculation needed.
341If option 4 -> skip home office entirely.
342 
343**Children / dependents example:**
344 
345Call `ask_user_input_v0` with:
346 
347```
348Q: "Dependents for quotient familial?"
349 Options: [
350 "No children or dependents",
351 "1 child",
352 "2 children",
353 "3+ children (specify in follow-up)",
354 "Children in garde alternée (shared custody)"
355 ]
356```
357 
358Each child: +0.5 part for 1st and 2nd, +1 part from 3rd child onwards. Garde alternée: half the parts (0.25 / 0.25 / 0.5).
359 
360**Tax credits example:**
361 
362Call `ask_user_input_v0` with:
363 
364```
365Q: "Any of these apply?"
366 Options: [
367 "Dons aux associations / organismes d'intérêt général",
368 "Emploi d'un salarié à domicile",
369 "Frais de garde d'enfants (< 6 ans)",
370 "Cotisations Madelin (prévoyance, retraite, mutuelle)",
371 "None of these"
372 ]
373```
374 
375Flag all crédits/réductions with limits for reviewer confirmation.
376 
377---
378 
379## Section 7 -- The final handoff
380 
381Once gap-filling is done, produce a final handoff message and hand off to `fr-return-assembly`.
382 
383**Example handoff message:**
384 
385> Intake complete. Here's what's going to the return assembly:
386>
387> Micro-entrepreneur BNC, married with 1 child (2.5 parts), franchise en base TVA (but threshold exceeded -- TVA registration flag). Chiffre d'affaires €58,000, cotisations sociales €12,819, versement libératoire IR €1,276.
388>
389> I'm now going to run the full French return preparation. This covers:
390> 1. TVA analysis and registration obligation assessment
391> 2. Déclaration de revenus (2042 / 2042-C-PRO)
392> 3. Cotisations sociales reconciliation (URSSAF)
393> 4. CFE verification
394> 5. Prélèvement à la source rate update for 2026
395>
396> You'll get back:
397> 1. A working paper with all forms and computations
398> 2. A reviewer brief with positions, citations, and flags for your expert-comptable
399> 3. A filing calendar with all upcoming deadlines
400>
401> Starting now.
402 
403Then internally invoke `fr-return-assembly` with the structured intake package.
404 
405---
406 
407## Section 8 -- Structured intake package (internal format)
408 
409The downstream skill (`fr-return-assembly`) consumes a JSON structure. It is internal and not shown to the user unless they ask. Key fields:
410 
411```json
412{
413 "jurisdiction": "FR",
414 "tax_year": 2025,
415 "taxpayer": {
416 "name": "",
417 "date_of_birth": "",
418 "marital_status": "single | married_joint | married_separate | pacs_joint | pacs_separate | single_parent",
419 "parts_fiscales": 0,
420 "children": [],
421 "residency": "full_year",
422 "siret": "",
423 "activity_code_ape": "",
424 "business_type": "micro_entrepreneur | ei_reel | eurl_ir | profession_liberale",
425 "regime_fiscal": "micro_bnc | micro_bic | declaration_controlee | reel_simplifie_bic | reel_normal_bic",
426 "regime_tva": "franchise_en_base | reel_simplifie | reel_normal",
427 "urssaf_status": "registered | recently_registered | cipav",
428 "acre_eligible": false,
429 "versement_liberatoire_ir": false,
430 "regime_matrimonial": "communaute_acquets | communaute_universelle | separation_biens | na"
431 },
432 "income": {
433 "chiffre_affaires_ht": 0,
434 "chiffre_affaires_ttc": 0,
435 "tva_collected": 0,
436 "client_breakdown": [],
437 "eu_services": 0,
438 "non_eu_services": 0,
439 "other_income": {
440 "salaires": 0,
441 "revenus_fonciers": 0,
442 "revenus_capitaux_mobiliers": 0,
443 "plus_values": 0
444 },
445 "spouse_income": {
446 "salaires": 0,
447 "other": 0
448 }
449 },
450 "expenses": {
451 "charges_courantes": [],
452 "immobilisations": [],
453 "charges_mixtes": [],
454 "blocked": [],
455 "cotisations_madelin": {
456 "prevoyance": 0,
457 "retraite": 0,
458 "mutuelle": 0
459 }
460 },
461 "tva": {
462 "regime": "franchise | reel_simplifie | reel_normal",
463 "returns_filed": [],
464 "tva_collectee_total": 0,
465 "tva_deductible_total": 0,
466 "credit_tva_bf": 0,
467 "franchise_threshold_exceeded": false
468 },
469 "cotisations_sociales": {
470 "regime": "micro_social | tns_reel",
471 "declarations": [],
472 "total_cotisations_paid": 0,
473 "acre_applied": false,
474 "cipav_affiliated": false,
475 "versement_liberatoire_ir_paid": 0
476 },
477 "cfe": {
478 "amount_paid": 0,
479 "commune": ""
480 },
481 "prior_year": {
482 "rfr": 0,
483 "impot_net": 0,
484 "parts_fiscales": 0,
485 "pas_rate": 0,
486 "deficits_reportables": 0,
487 "bnc_bic_declared": 0
488 },
489 "home_office": {
490 "qualifies": false,
491 "percentage": 0,
492 "method": "surface | forfait"
493 },
494 "credits_reductions": {
495 "dons": 0,
496 "emploi_domicile": 0,
497 "garde_enfants": 0,
498 "other": []
499 },
500 "open_flags": [],
501 "refusals_triggered": [],
502 "documents_received": []
503}
504```
505 
506---
507 
508## Section 9 -- Refusal handling
509 
510Refusals fire from either the refusal sweep (Section 2) or during inference (e.g., corporate structure discovered in documents).
511 
512**Refusal catalogue:**
513 
514- **R-FR-1 -- SASU / SAS.** "SASU and SAS are subject to impôt sur les sociétés. The dirigeant is an assimilé salarié. I'm set up for self-employed individuals filing personal income tax. You need an expert-comptable who handles IS returns and paie."
515- **R-FR-2 -- EURL at IS.** "EURL at IS files corporate returns (liasse 2065). I handle personal income tax filings only."
516- **R-FR-3 -- SCI.** "SCI (Société Civile Immobilière) has its own filing requirements (2072). This is outside my scope."
517- **R-FR-4 -- SAS/SARL with >10 employees.** "Companies with more than 10 employees have complex payroll, DSN, and social obligations I don't cover. You need an expert-comptable with a cabinet social."
518- **R-FR-5 -- Agricultural activity.** "Agricultural income (bénéfices agricoles) is filed on 2342/2143 and subject to MSA, not URSSAF. Different regime entirely. You need a CGA or expert-comptable specialising in agriculture."
519- **R-FR-6 -- Non-resident.** "Non-residents file with the SIP des non-résidents and have different rules. I'm set up for full-year France residents only."
520- **R-FR-7 -- Association.** "Associations (loi 1901) have separate filing obligations. Not in scope."
521 
522When a refusal fires:
5231. Stop the workflow
5242. State the specific reason in one sentence
5253. Recommend the path forward (specific practitioner type)
5264. Offer to continue with partial help ONLY if the out-of-scope item is cleanly separable (rare)
527 
528**Do not:**
529- Apologize profusely
530- Try to work around the refusal
531- Suggest the user "might be able to" fit into scope if they answer differently
532- Continue silently
533 
534---
535 
536## Section 10 -- Self-checks
537 
538**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.
539 
540**Check IN2 -- Refusal sweep used ask_user_input_v0.** The first substantive interaction used the interactive tool, not prose questions.
541 
542**Check IN3 -- Upload-first flow honoured.** After refusal sweep, the skill asked for a document dump before asking any content questions.
543 
544**Check IN4 -- Documents were parsed and inferred before asking questions.** The inference summary (Section 5) was shown before gap-filling questions (Section 6).
545 
546**Check IN5 -- Gap-filling only asked about things NOT visible in documents.** If the skill asked "did you pay URSSAF" after the bank statement showed URSSAF debits, check fails.
547 
548**Check IN6 -- Open flags captured.** Anything ambiguous, risky, or attention-worthy during inference is in the `open_flags` list in the handoff package.
549 
550**Check IN7 -- Handoff to `fr-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.
551 
552**Check IN8 -- Reviewer step was stated upfront and reiterated before handoff.** The opening message mentioned expert-comptable signoff.
553 
554**Check IN9 -- Refusals were clean.** No hedging. Stop means stop.
555 
556**Check IN10 -- No meta-commentary about workflow phases.** The skill did not say "Phase 1," "Phase 2," etc.
557 
558**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.
559 
560**Check IN12 -- TVA regime was established.** Franchise en base vs réel simplifié vs réel normal was confirmed before inference, as it changes how every transaction is classified.
561 
562**Check IN13 -- Franchise en base threshold was verified.** If micro-entrepreneur CA exceeds €36,800 (services) or €91,900 (goods), the franchise en base is lost and TVA registration is mandatory. This must be flagged.
563 
564---
565 
566## Section 11 -- Performance targets
567 
568For a prepared user (documents in a folder, ready to upload):
569- **Refusal sweep**: 60 seconds (1-2 interactive turns)
570- **Document upload**: 2 minutes (1 upload turn)
571- **Inference and confirmation display**: 1 minute Claude processing + 1 turn for user confirmation
572- **Gap filling**: 2 minutes (2-3 interactive turns)
573- **Handoff**: immediate
574- **Total**: ~7 minutes
575 
576For an unprepared user (has to go fetch documents):
577- Refusal sweep: same
578- Document discovery: 10-20 minutes offline
579- Rest: same
580- **Total**: 15-25 minutes
581 
582---
583 
584## Section 12 -- Cross-skill references
585 
586**Inputs:** User-provided documents and answers.
587 
588**Outputs:** Structured intake package consumed by `fr-return-assembly`.
589 
590**Downstream skills triggered (via fr-return-assembly):**
591- `france-tva` -- TVA return (CA3/CA12) or franchise en base verification
592- `france-income-tax` -- Déclaration de revenus (2042 / 2042-C-PRO / 2035 / 2031)
593- `france-cotisations` -- Cotisations sociales (URSSAF micro-social or TNS réel)
594- `fr-estimated-tax` -- Prélèvement à la source rate update and acomptes contemporains
595 
596---
597 
598### Change log
599 
600- **v1.0 (May 2026):** Initial draft. Upload-first, inference-then-confirm pattern modelled on mt-freelance-intake v0.1.
601 
602## End of Intake Skill v1.0
603 
604 
605---
606 
607## Disclaimer
608 
609This 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.
610 
611The 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.
612 

Run this skill, then get an accountant to check it

After running the full skill pack in your AI agent, 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.

Verification status

Research-verified

Drafted from authoritative sources (tax authority sites, Big-4 summaries). Awaiting credentialed sign-off.

Needs section-by-section practitioner review to reach accountant-verified.

Section review progress

0/19

About

ALWAYS USE THIS SKILL when a user asks for help preparing their French tax returns AND mentions freelancing, auto-entrepreneur, micro-entrepreneur, entreprise individuelle, profession libérale, or self-employment. Trigger on phrases like "aide-moi avec mes impôts", "préparer ma déclaration", "I'm a freelancer in France", "I'm an auto-entrepreneur", "prepare my 2042-C-PRO", or any similar phrasing where the user is a France-resident self-employed individual needing tax return preparation. This is the REQUIRED entry point for the French self-employed tax workflow -- every other skill in the stack (france-tva, france-income-tax, france-cotisations, fr-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. France full-year residents only; self-employed individuals, micro-entrepreneurs, and sole proprietors.

FRty-2025

Use this skill

This skill is open source and free to use in any AI agent. Copy it, download it, or clone the repo. If you find an error, report an issue — a licensed accountant will review.

18 of 19 in the FR workflow: