* chore: salvage unmerged work from the 2026-07-16 worktree audit
Four items survived the 43-file dirty-tree audit as genuinely unmerged:
- CLAUDE.md: Definition of Done rule 9, the last mile is verified
in-session, not assumed (project-level counterpart of the switch-on
check; cloud agents only see the repo file).
- DECISIONS.md: eight decision lines from 2026-07-09 to 2026-07-15,
condensed and scrubbed of production identifiers for the public repo.
- .claude/skills/loop-ignite: skill that audits the agentic loops and
ignites dead ones; must live on main for cloud routines to load it.
- lib/bokslut/ixbrl testbank manual E2E: encodes the working testbank
endpoints and the Luhn-valid test pnr (the documented one fails);
skipped unless BOLAGSVERKET_TESTBANK_E2E=1, so zero CI cost.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* chore: address review findings on the salvage batch
- testbank e2e: kontrollera returns HTTP 200 even for invalid documents
(outcome is in utfall), so assert zero typ='error' entries; also assert
grunduppgifter returns a company name, not just the echoed orgnr.
- loop-ignite: make ignition explicitly idempotent (enable/repair an
existing trigger before creating, never duplicate).
Skipped the fourth finding (require an observed firing as switch-on
proof): a just-created cron cannot have fired yet; the audit table
already reports last observed run per loop.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>