yaas-ops

Documents the yaas triage system's checker plugin architecture, state layout, and operations runbook.

4|1|Updated Jul 22, 2026
One-click install
npx skills add https://github.com/circlefin/sidequestor --skill yaas-ops-circlefin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: yaas-ops
Source: https://github.com/circlefin/sidequestor/tree/main/src/sidequestor/runtime/yaas-triage/skills/yaas-ops
Command: npx skills add https://github.com/circlefin/sidequestor --skill yaas-ops-circlefin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Operating and extending the Sidequestor yaas triage system requires understanding its checker plugin architecture, watch schemas, watermark lag handling, and state file layout, which are otherwise scattered across many scripts and directories. ## Core Features & Use Cases - Checker Plugin Reference: Explains how per-watch-type checker scripts in checkers/ are invoked by the orchestrator, their output contract (0|, N|<preview>, error|<reason>), and how to add new channel types like Slack, email, Jira, GitHub, Telegram, and X. - State and Schema Documentation: Details the watch.json and meta.json schemas, watermark lag files, quest folder lifecycle, and the approval ledger workflow. - Operations Runbook: Covers setup, launchd control, configurable .env knobs (spend ceilings, dispatch fanout, backoff), and a symptom-to-fix debugging table. - Use Case: When asked to add a new watcher type or debug why a quest never fires, load this Skill to get the exact checker contract, environment variables, and diagnostic commands. ## Quick Start Ask the agent to explain how to add a new checker type to the yaas triage system and what output contract it must follow.

Frequently Asked Questions about yaas-ops

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a new checker type to the yaas triage system?▼

Create a script at `checkers/<type>.py` that accepts a watch entry JSON on argv and prints one line: `0|` for clean, `N|<preview>` for new items, or `error|<reason>` for failures. The orchestrator discovers it automatically by watch type name.

Why is my quest never firing in the triage loop?▼

Run `DRY_RUN=1 VERBOSE=1 sq tick` to see per-type checker output. Common causes include spend ceilings being breached (`gate_budget_exceeded`), disabled connectors in `SIDEQUESTOR_CHECKER_CONNECTORS`, or watermarks ahead of the source index.

What is a .lag file and when should I create one?▼

A `.lag` file in `checkers/` holds integer seconds of indexing latency for a source, like `email.lag = 120` for Gmail. The orchestrator subtracts it when advancing watermarks so clean ticks never claim to have seen unindexed items.

Does the triage system support Telegram and X watchers?▼

Yes, via `telegram_chat`, `telegram_search`, and five X checker types, but you must authenticate with `sq telegram-auth` or `sq x-auth` and add the connector to `SIDEQUESTOR_CHECKER_CONNECTORS`. Disabled connectors keep watches stored with frozen watermarks.

What does launchd LastExitStatus 512 mean for the triage job?▼

Exit code 2 means a bad `.env` knob, such as a non-numeric spend or limit value, made the orchestrator refuse to run (`gate_bad_env_knob`). Fix the value in `.env` and run `sq tick` manually to confirm.