Milestone #117 · Bundles 1+2 · live integration harness + skill wiring

What shipped

IssueStatusArtifact
#1438 live integration harness for gh-rate-limit-tracker✓ shipped6 files · 244 LoC under tests/integration/hooks/gh-rate-limit-tracker/
#1436 run eval:quality on 5 CC 2.1.116 eval filesBLOCKEDRunner verified functional; requires ANTHROPIC_API_KEY (OAuth session can't execute). Commented on issue with unblock path.
#1447 wire Monitor into ork:expect✓ shippedAdded Monitor + PushNotification to allowed-tools + runtime guidance in Phase 5
#1450 PushNotification invocation in verify/implement/fix-issue✓ shipped3 skills gained PushNotification guidance blocks with concrete invocation templates

#1438 harness structure

tests/integration/hooks/gh-rate-limit-tracker/
├── fakes/
│   ├── gh                       (12 LoC) prints primary rate-limit error
│   └── gh-permission-denied     (13 LoC) negative-control: plain 403
├── test-session.sh              (92 LoC) orchestrator
├── assertions/
│   ├── golden.sh                (69 LoC) positive-case assertions
│   └── false-positive.sh        (58 LoC) negative-case assertions
└── README.md                    (57 LoC) usage + prereqs

Built by ork:test-generator subagent. Syntax-checked via bash -n. Not wired into CI (costs real API tokens); run manually with ANTHROPIC_API_KEY set.

#1447 + #1450 — who gained what

SkillMonitorPushNotification guidance
expectNEWNEW
implementexistingNEW
verifyexistingNEW
fix-issue(not needed)NEW
brainstorm(not needed)existing (brief)

Tests

npm run build                    
npm run test:skills              ✓ (106 pass, 2 warnings)
./bin/validate-counts.sh         PASSED
bash -n on all new shell scripts clean

Remaining in milestone #117

After this PR: 4 of 12 original issues closed (the 2 invalid ones were closed separately). Still open: #1436 (blocked on API key), #1446 MCP audit, #1448 OTEL analytics, #1451 release cadence, #1452 property-based testing.

Honest note

Used ork:test-generator subagent for #1438 — it delivered 244 LoC cleanly in one shot including syntax checks. Attempted ork:eval-runner for #1436 — correctly detected the missing API key and bailed. Both behaved properly.