CopilotAtelier.psd1
|
@{ RootModule = 'CopilotAtelier.psm1' # Replaced at build time by GitVersion. ModuleVersion = '3.0.0' GUID = '67bbef0b-f4de-4c1b-bb5a-b34104beb5b7' Author = 'raandree' CompanyName = 'raandree' Copyright = '(c) raandree. All rights reserved.' Description = 'Portable GitHub Copilot customization library. Ships custom agents, auto-applied instructions, on-demand skills, prompt templates, and lifecycle hooks, and installs them into the well-known ~/.copilot discovery folders that VS Code, the GitHub Copilot CLI, and Claude Code read.' PowerShellVersion = '5.1' FunctionsToExport = @('Get-CopilotAtelierVersion','Install-CopilotAtelier','Update-CopilotAtelier') CmdletsToExport = @() VariablesToExport = @() AliasesToExport = @() PrivateData = @{ PSData = @{ Tags = @( 'Copilot' 'GitHubCopilot' 'VSCode' 'Agents' 'Skills' 'Prompts' 'Instructions' 'Hooks' 'AI' 'Windows' 'Linux' 'MacOS' ) LicenseUri = 'https://github.com/raandree/CopilotAtelier/blob/main/LICENSE' ProjectUri = 'https://github.com/raandree/CopilotAtelier' IconUri = 'https://raw.githubusercontent.com/raandree/CopilotAtelier/main/assets/CA-glyph-on-light.png' Prerelease = 'preview0001' ReleaseNotes = '## [3.0.0-preview0001] - 2026-08-01 ### Added - **New Skill `german-tax-research`** (2026-07-31). The `tax-researcher` agent had instructed itself to "load **german-tax-research**" since the day it was written, and no such Skill existed — every income tax session therefore ran on whatever the model happened to recall about the EStG and the AO. The Skill closes that dangling reference and carries the material that a multi-year `Einspruchsverfahren` produced. Three rules in it are the ones that repeatedly decided outcomes. **Four proof types, judged separately**: an invoice evidences the cost and nothing else, so payment, professional purpose or participation, and the absence of third-party reimbursement each need their own document, and a missing one is closed with a signed `Eigenbeleg` or the position is dropped — never carried silently into the letter. **Reconcile against the transmitted return, not the workbook**: a control table with transmitted, evidenced, difference, and treatment per position is the only instrument that catches an allocation key a spreadsheet quietly "improved" away from the one the tax office applied, a bank credit that is a net figure hiding a gross receipt plus a disbursement, and a byte-identical invoice claimed in two different years. **Disclose every difference in the point it belongs to**, including corrections against the taxpayer''s own interest, because `§ 153 Abs. 1 AO` obliges notification once an error is known and an examiner who sees a self-reported correction reads the rest of the package differently. The Skill also fixes the deadline arithmetic that is wrong in most self-prepared objections: notification is deemed on the **fourth** day after dispatch since the PostModG took effect on 1 January 2025, not the third, and both that day and the end of the one-month objection period shift over weekends and state public holidays under `§ 108 Abs. 3 AO`. [`scripts/Get-SteuerFrist.ps1`](Skills/german-tax-research/scripts/Get-SteuerFrist.ps1) computes it, selects the three- or four-day fiction from the dispatch date, and reports every shift it applied together with the holiday set of the state where the Finanzamt sits. Six references keep the body inside the progressive-disclosure budget: [`fristen-und-verfahren.md`](Skills/german-tax-research/references/fristen-und-verfahren.md) for notification, objection, AdV, estimation, surcharges, interest, limitation, and competence; [`vermietung-und-afa.md`](Skills/german-tax-research/references/vermietung-und-afa.md) for `Anlage V`, the AfA rates including the 5 % declining balance of `§ 7 Abs. 5a EStG`, the purchase-price split after BFH IX R 26/19, and the handling of a `§ 7i` certificate as an outstanding `Grundlagenbescheid`; [`werbungskosten-und-abzuege.md`](Skills/german-tax-research/references/werbungskosten-und-abzuege.md); [`belegaufforderung-antwort.md`](Skills/german-tax-research/references/belegaufforderung-antwort.md) with the end-to-end answer procedure, the residence and centre-of-life evidence order, and the dispatch channels that actually prove receipt; [`kennzahlen.md`](Skills/german-tax-research/references/kennzahlen.md) with amounts and filing deadlines per assessment period 2021 to 2026, including the `§ 36 EGAO` extensions that make the 2020 to 2024 dates non-obvious; and [`vorlagen.md`](Skills/german-tax-research/references/vorlagen.md) with the German letter templates. Cross-referenced with `evidence-package-assembly`, which builds the `Anlage` PDF this Skill decides the content of, and with `german-legal-research`, whose `DO NOT USE FOR` now names the new Skill for tax questions. Skill count 42 → 43. - **New Skill `evidence-package-assembly`** (2026-07-30). Assembling an `Anlage` for an authority repeatedly hit the same three problems and none of them had a home in the Skill library. First, headless Microsoft Edge writes no PDF and still returns exit code 0 unless it is launched with `--headless=new`, a private `--user-data-dir`, and awaited as a process, so a Markdown-to-PDF pipeline appears to succeed while producing nothing; the Skill states the guard and ships [`scripts/Build-EvidencePackage.ps1`](Skills/evidence-package-assembly/scripts/Build-EvidencePackage.ps1), which throws when the output is absent. Second, deciding which sheets may be dropped from a bank statement or an official document has a reliable criterion that is not "topical relevance": a sheet carrying the source''s own `Seite X von N` numbering stays even when it shows nothing relevant, because its removal leaves a visible gap and invites the reproach of selective presentation, while a sheet outside that numbering — terms-and-conditions notices, technical trailer lines — can be dropped without trace. Third, redaction is the wrong default for statements, because breaking the running balance destroys more evidential value than the privacy gain is worth. [`scripts/merge-and-verify.py`](Skills/evidence-package-assembly/scripts/merge-and-verify.py) takes a JSON manifest, merges with pypdf, prints the page range of every part so the cover is filled from the build output rather than by hand, and reads the sources'' own page numbering back out of the assembled file to prove no sequence was broken. The Skill also collects the pandoc gotchas that only surface at render time: `--metadata title` duplicating the H1, single newlines collapsing a header block, pipe-table column widths coming from the dash counts in the separator row, and `17. April 2022` at the start of a line parsing as an ordered list. ### Fixed - **`german-tax-research` priced `Aussetzungszinsen` at a third of the statutory rate** (2026-08-01). Surfaced by a statutory audit of the new Skill against the consolidated text in force on 1 August 2026. [`references/fristen-und-verfahren.md`](Skills/german-tax-research/references/fristen-und-verfahren.md), [`references/kennzahlen.md`](Skills/german-tax-research/references/kennzahlen.md), and [`references/vorlagen.md`](Skills/german-tax-research/references/vorlagen.md) all stated 0.15 % per month for `§ 237 AO`. The reduced rate of `§ 238 Abs. 1a AO` applies by its own wording only "in den Fällen des § 233a", and `§ 237 AO` carries no rate of its own, so AdV interest runs at `§ 238 Abs. 1 S. 1 AO` — **0.5 % per month, 6 % per year**. A Skill whose purpose is deciding whether to seek suspension of enforcement was therefore understating the downside of losing by a factor of more than three. Independently confirmed by `BFH, Vorlagebeschluss v. 08.05.2024 – VIII R 9/23`, which describes the AdV rate as "einhalb Prozent pro Monat … gem. § 237 i. V. m. § 238 Abs. 1 Satz 1 AO" and refers it to the BVerfG as unconstitutional for 1 January 2019 to 15 April 2021 — so the corrected text now also carries the practical consequence: object and apply for the procedure to rest under `§ 363 Abs. 2 S. 2 AO` rather than paying. - **The `§ 152` and `§ 233a` month counts were wrong for exactly the assessment periods the Skill covers** (2026-08-01). The reference stated the flat 14-month trigger for a mandatory `Verspätungszuschlag` and the flat 15-month `Karenzzeit` for interest. `Art. 97 § 36 Abs. 3 Nr. 5 and Nr. 7 EGAO` replace both for the assessment periods 2020 to 2024: 20/20/19/17/16 months for the surcharge and 21/21/20/18/17 months for the interest run. A case on VZ 2021 to 2024 — the years a live objection is about — would have produced a surcharge that is not owed and an interest period that starts up to six months too early. Both tables now carry the per-VZ override, and `SKILL.md` gained the matching anti-pattern alongside a second one for the AdV rate. - **Two further statutory drifts in `german-tax-research`** (2026-08-01). `§ 238 Abs. 1c AO` requires the interest rate to be evaluated **at least every two years, first by 1 January 2024** — the reference said every three years. And `§ 10 Abs. 1 Nr. 5 EStG` has allowed **80 % of childcare costs up to 4,800 euro per child since VZ 2025** (JStG 2024); the reference still stated the pre-2025 two-thirds-up-to-4,000 rule without a year key. The audit confirmed the rest of the Skill against primary sources: the four-day `Bekanntgabefiktion` since the PostModG, the whole `§ 149`/`§ 36 EGAO` filing-deadline table cell by cell, the `Steueränderungsgesetz 2025` figures (0.38 euro from the first kilometre, the 2,000 euro foreign accommodation ceiling under `§ 9 Abs. 1 S. 3 Nr. 5 EStG`, 28/14 euro `Verpflegungspauschalen` unchanged for 2026), and the case-law citations `BFH IX R 19/24` of 14 January 2025, `BFH IX R 26/19`, `BFH VI R 75/14`, and `BFH GrS 1/06`. `Get-SteuerFrist.ps1` reproduces its own documented worked example. ### Changed - **`skill-creator` now classifies the baseline failure before prescribing a guidance form** (2026-07-30). The behavioural-enforcement pattern — anti-rationalization table, red flags, evidence close — was prescribed for every Skill encoding "a discipline an agent tends to abandon", with no distinction between failure types. A new **Match the form to the failure** section makes the classification the first authoring step and maps each failure type to its instrument: a *discipline* failure (knows the rule, skips it under pressure) takes the prohibition triad; a *shaping* failure (complies, but the output has the wrong shape) takes a positive recipe that states what the output is, part by part; an *omission* takes a structural REQUIRED slot in the template; and condition-dependent behaviour takes a conditional keyed to an observable predicate. Prohibitions backfire on shaping failures — given a competing incentive an agent negotiates with "don''t do X" and can produce more of the unwanted content than no guidance at all — so the enforcement section is now explicitly scoped to discipline failures. Two supporting rules: no nuance clauses ("don''t do X unless it matters" reopens the negotiation; express a real exception as its own conditional), and exemption clauses do not scope ("thi' } } } |