Separate local and credentialed completion
The local chain is complete and cleaned up. Phone delivery remains capture live until the author supplies a real channel credential and allowed-user ID.
Read the four preconditions
armaraos config test-key <PROVIDER>
armaraos health
armaraos approvals list --json
armaraos cron list --json
Provider and daemon are ready. The queue is genuinely empty, and the test schedule is gone.
Reuse the proven-prompt law
armaraos message <UUID> "Reply only: scheduled-working"
Read the completed local schedule chain
Repeating a billing loop adds risk, not learning. The genuine evidence already completes this link.
State the approval result accurately
No approval row appeared for the CLI schedule path. There is no ID to approve, so this capstone does not fabricate a gate.
Gate phone delivery on real credentials
armaraos channel list
armaraos config show
armaraos channel test <CHANNEL>
Until those credentials exist, keep the channel not configured. Webhook registration is not a fallback on this build.
Finish with the safe roster
armaraos cron list --json
The course job is absent and the original 13 curated rows remain. Because disable did not persist, exact deletion was the correct cleanup.
Name what complete means
| Completion | Required evidence |
|---|---|
| Local | Healthy provider, proven prompt, observed last run, exact cleanup. |
| Credentialed | Non-empty allow-list, private channel test, real phone receipt. |
Course 3 completion check
Prove clean state, then add delivery only when real.
armaraos health
armaraos approvals list --json
armaraos cron list --json
Confirm healthy state, zero pending approvals, and absence of course-3-first-alarm. Add the private phone receipt only with verified credentials.
Do not recreate minute-scale schedules, invent approval IDs, or enable a remote channel without an audited allow-list merely to make the capstone look complete.
Troubleshooting the capstone
| What you see | Likely cause | What to do |
|---|---|---|
| Queue is empty | Verified CLI behavior. | Do not invent an approval step. |
| Channel is not configured | Credentials were not supplied. | Keep local completion and defer phone capture. |
| Disable does not persist | Verified cron defect. | Delete only the exact disposable ID. |
| Webhook fallback fails | Registration defect. | Do not substitute it for a channel. |