✔ the role file loads and resolves through loadBusiness (5.775273ms)
✔ the shipped file is exactly the approved list (0.769843ms)
✔ the assistant's authority is message.send within role and nothing else (1.85945ms)
✔ a business grant through limits does not widen the role (1.496159ms)
✔ a launch block whose by is the assistant is refused (1.470344ms)
✔ the instance takes no credential references and no tracker (2.04997ms)
✔ the contract passes work to the chief of staff and directs no one (0.896154ms)
ℹ tests 7
ℹ suites 0
ℹ pass 7
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 88.126197
✔ the four shipped version 2 roles load (2.657839ms)
✔ shipped role scopes match addendum B section 2 and the SR runbook (0.828081ms)
✔ shipped authority follows the note's table (0.483429ms)
✔ every role file in roles/ loads through the validator, and a v2 contract exists (0.520707ms)
✔ version 1 files keep loading with no authority (1.10221ms)
✔ the conductor policy isn't a role (0.295293ms)
✔ a missing role file is exit 4, a symbolic link too (0.40055ms)
✔ version 2 refusals (1.251648ms)
✔ authority: closed vocabulary, no gated-only action, no overlap (2.028094ms)
✔ credentials: Gitea scopes (0.860453ms)
✔ credentials: Vikunja scopes are a group-to-verbs map from the grantable list (0.89409ms)
✔ credentials: services (0.473602ms)
✔ contract: a non-empty regular Markdown file beside the role file (0.582728ms)
ℹ tests 13
ℹ suites 0
ℹ pass 13
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 78.145495
✔ the role file loads and resolves through loadBusiness (5.964507ms)
✔ the shipped file is exactly the approved list (0.2378ms)
✔ the resolved record matches the approved list, so a widened file fails (1.687923ms)
✔ the chief of staff holds role.launch and message.send; every other action is gated (1.469309ms)
✔ the pm does not hold role.launch (1.364643ms)
✔ a business grant of a gated action through limits does not widen the role (1.285306ms)
✔ a limit that drops role.launch leaves the chief of staff with no launch block (1.409754ms)
✔ a launch block whose by is the pm instance is refused (1.301559ms)
✔ the contract names no duty to talk to the human and the pm contract no launch (0.325418ms)
✔ the instance takes no credential references and no tracker (1.950155ms)
ℹ tests 10
ℹ suites 0
ℹ pass 10
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 84.183511
