yaas-checker-authoring

Add new watch types to a triage loop by pairing executable checker scripts with watch manifests.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Adding a new watch type to a polling triage loop is error-prone: a checker that mismanages its watermark either silently drops activity or burns money on false dispatches, and nothing catches the mistake. This Skill encodes the full doctrine for writing, registering, testing, and documenting a checker so neither failure mode ships. ## Core Features & Use Cases - Checker authoring doctrine: Defines the result contract (clean, dirty, hold, ratelimited, error, misconfig), watermark advancement rules, credential isolation, and argument-injection defenses for executable checkers/<type>.py scripts. - Registration and manifest guidance: Explains the <type>.watch.json manifest fields, derived consumers, Slack slack_* naming rule, and optional .lag files for eventually consistent sources. - Test and doc coverage checklists: Specifies the minimum test cases (query shape, tie safety, monotonic advance, failure classification) and the documentation tables that must stay in sync, enforced by contract tests. - Use Case: When asked to make the triage loop watch a new source like an issue tracker or queue, follow this Skill to copy the closest sibling checker, write the manifest, prove watermark safety with faked binaries, and update all docs in one commit. ## Quick Start Ask the agent to add a new watch type for your source by following the yaas-checker-authoring skill, starting from the closest existing checker such as github_pr.py.

Frequently Asked Questions about yaas-checker-authoring

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

FAQPage Schema
How do I add a new watch type to a triage loop?▼

Create an executable checkers/<type>.py that prints one result JSON line, plus a checkers/<type>.watch.json manifest declaring required fields, identity, and upstream. Copy the closest sibling checker, then add tests and update the watch-type tables in the docs.

What is a watermark in a polling checker?▼

A watermark is the last-checked timestamp the checker advances only after proving every item up to that point was seen. Bound queries low, sort ascending, and never advance onto a partially held timestamp or activity is silently skipped.

When should I not write a new checker?▼

Skip a new checker when an existing type covers the source with a search or query narrowing, when the trigger is time-based (use schedule instead), or when the source has no monotonic updated field or cursor to express a watermark.

Why does my watch report clean but miss new activity?▼

This happens when the query returns a newest-first suffix instead of a low-bounded ascending prefix, letting the watermark jump past unseen items. It also occurs when a saturated page is reported clean instead of hold.

How should a checker handle rate limits and permanent errors?▼

Classify transient failures like 429, 5xx, and timeouts as ratelimited so the tick is skipped, and send permanent conditions like bad credentials or deleted repos straight to misconfig. Misclassifying transients as clean causes data loss.

How do I test a polling checker without hitting the real API?▼

Fake the external binary on PATH, record its argv, and assert the query shape is bounded and ascending. Cover full pages, tie timestamps, monotonic advance, empty results, boundary re-filtering, and each failure classification.