pennylane-accesslisted
Install: claude install-skill Xileades/pennylane-api-toolkit
# Pennylane — access foundation
Every Pennylane task starts here. The skills `pennylane-supplier-invoices`,
`pennylane-customer-invoices`, `pennylane-reconciliation`,
`pennylane-accounting-exports` and `pennylane-analysis` assume this one is loaded.
Toolkit: <https://github.com/Xileades/pennylane-api-toolkit>
## 1. Load the library
```powershell
. <toolkit>\lib\pl-api.ps1
. <toolkit>\lib\journal.ps1 # only when a shared journal is in use
```
If the library sits on a network share, PowerShell's `RemoteSigned` policy will
refuse it ("is not digitally signed"). Copy it to a local cache and dot-source
the copy, refreshed at every run so it cannot drift:
```powershell
$c = "$env:USERPROFILE\.pennylane\scripts"
New-Item -ItemType Directory -Path $c -Force | Out-Null
Copy-Item '<share>\lib\*.ps1' $c -Force
. "$c\pl-api.ps1"
```
Do **not** work around this by setting the policy to `Bypass`: that disables the
protection machine-wide.
If `pl-api.ps1` throws "tokens.json not found", send the user to set it up from
`config/tokens.example.json`. Never guess a token, never reuse someone else's.
## 2. Companies and tokens
**A Pennylane Company API token is bound to exactly one company.** A group needs
one token per entity, kept in one file per person:
```
%USERPROFILE%\.pennylane\tokens.json (override with PENNYLANE_HOME)
```
`PLEntites` lists the declared slugs. An entity with `"token": null` has no API
access — `PLHdr` throws an explicit error for it on purpose. Han