Skill pack
Deploy Your First Loop
Use when an agent or human wants to deploy the research-watch Loopmaster template through cron, GitHub Actions, or agent-kanban and verify a running loop in one session.
Raw SKILL.md · Skills index JSON
What it deploys: research-watch
Backends: cron, github_actions, agent_kanban
Status: verified · 2026-07-07
Deploy your first loop
This is the flagship getting-started pack for Loopmaster. It deploys the research-watch starter template and gets you to evidence that a loop can run, write a report, update state, and avoid duplicate reporting.
Important distinction: the checked-in template is not an unattended installed loop. After copying it, customize the targets, schedule, report/state paths, and credential storage for the target repository. Do not enable a scheduler, publish findings, change product direction, or use new credentials until the install has explicit maintainer approval.
Canonical template references:
templates/research-watch/loop.yaml— manifest, permissions, gates, state paths, backend hints, and verification command names.templates/research-watch/AGENT-INSTALL.md— complete backend install guide. Use it as the source of truth for backend-specific setup.templates/research-watch/scripts/research_watch.py— concrete runner used by every backend.templates/research-watch/examples/dry-run-sources.json— local-only source list for scratch verification.templates/research-watch/examples/sources.json— editable source list for a real installation.
Do not copy the template docs into this pack. If a command or field appears to conflict with templates/research-watch/AGENT-INSTALL.md, follow the template guide and fix this skill pack.
1. Preflight from repo root
Run these checks before choosing a backend:
test -f templates/research-watch/loop.yaml
test -f templates/research-watch/AGENT-INSTALL.md
test -f templates/research-watch/scripts/research_watch.py
python3 templates/research-watch/scripts/research_watch.py --help >/tmp/loopmaster-research-watch-help.txt
uv run --with check-jsonschema --with pyyaml check-jsonschema --schemafile spec/loop.schema.json templates/research-watch/loop.yamlExpected result: every command exits 0, and the final command prints ok -- validation done.
If preflight fails, stop and fix the repo checkout or manifest before installing any scheduler.
2. Pick a backend
Use cron first when you want the shortest local path to a running loop. Use GitHub Actions when the loop should open report PRs from the repository scheduler. Use agent-kanban when a recurring agent should inspect the report and create follow-up cards.
The full backend details live in templates/research-watch/AGENT-INSTALL.md:
- cron: section "Backend A — cron".
- GitHub Actions: section "Backend B — GitHub Actions".
- agent-kanban: section "Backend C — agent-kanban".
3. Fast cron-backed scratch run
This path proves the copied starter template and cron-shaped environment without requiring secrets. It writes only under /tmp; it is a verification run, not a live unattended install.
SCRATCH=$(mktemp -d /tmp/loopmaster-first-loop.XXXXXX)
mkdir -p "$SCRATCH/state" "$SCRATCH/reports" "$SCRATCH/env"
cat > "$SCRATCH/env/research-watch.env" <<EOF
RESEARCH_WATCH_SOURCES=templates/research-watch/examples/dry-run-sources.json
RESEARCH_WATCH_STATE=$SCRATCH/state/research-watch.json
RESEARCH_WATCH_OUTPUT_DIR=$SCRATCH/reports
EOF
chmod 600 "$SCRATCH/env/research-watch.env"
set -a && . "$SCRATCH/env/research-watch.env" && set +a
python3 templates/research-watch/scripts/research_watch.py --sources "$RESEARCH_WATCH_SOURCES" --state "$RESEARCH_WATCH_STATE" --output-dir "$RESEARCH_WATCH_OUTPUT_DIR" --max-items 5
python3 templates/research-watch/scripts/research_watch.py --sources "$RESEARCH_WATCH_SOURCES" --state "$RESEARCH_WATCH_STATE" --output-dir "$RESEARCH_WATCH_OUTPUT_DIR" --max-items 5Expected result: the first run prints RESEARCH_WATCH_REPORT=..., RESEARCH_WATCH_STATE=..., NEW_ITEMS=1, and FETCH_ERRORS=0; the second run prints the same artifact keys with NEW_ITEMS=0 and FETCH_ERRORS=0.
That is enough evidence for a scratch run. To install a real cron entry, continue with templates/research-watch/AGENT-INSTALL.md section "Backend A — cron" and use a project-local .loopmaster/env/research-watch.env instead of /tmp.
4. GitHub Actions path
Use this when the loop should run from GitHub and open pull requests for changed reports/state. Follow templates/research-watch/AGENT-INSTALL.md section "Backend B — GitHub Actions" exactly.
Minimal readiness check from repo root:
test -f templates/research-watch/examples/github-actions/research-watch.yml
grep -q "pull-requests: write" templates/research-watch/examples/github-actions/research-watch.yml
grep -q "contents: write" templates/research-watch/examples/github-actions/research-watch.ymlExpected result: every command exits 0. After copying the workflow and merging it, verify the first Actions run from the GitHub run log and the resulting report PR, as described in the template guide.
5. Agent-kanban path
Use this when an agent should run the helper, read the report, and create follow-up cards only for evidence-backed findings. The prompt must remain self-contained and must name the concrete commands from templates/research-watch/AGENT-INSTALL.md section "Backend C — agent-kanban".
Readiness check from repo root:
test -f templates/research-watch/scripts/research_watch.py
test -f templates/research-watch/examples/sources.jsonExpected result: both commands exit 0. The recurring task is not verified unless its completion evidence includes RESEARCH_WATCH_REPORT, RESEARCH_WATCH_STATE, NEW_ITEMS, and FETCH_ERRORS from the helper.
6. Verify the installed loop
Before declaring the first loop deployed, capture:
uv run --with check-jsonschema --with pyyaml check-jsonschema --schemafile spec/loop.schema.json templates/research-watch/loop.yaml
python3 templates/research-watch/scripts/research_watch.py --sources templates/research-watch/examples/dry-run-sources.json --state /tmp/loopmaster-research-watch-state.json --output-dir /tmp/loopmaster-research-watch --max-items 5Expected result: manifest validation exits 0; the runner prints the report path, state path, new-item count, and fetch-error count. If FETCH_ERRORS is non-zero, inspect the generated report and fix sources before scheduling.
7. Stop or roll back
- Cron: remove the crontab line that contains
templates/research-watch/scripts/research_watch.py. - GitHub Actions: delete or disable
.github/workflows/research-watch.ymlin a normal PR. - Agent-kanban: pause or remove the recurring task.
- Bad report: close/revert the report PR, or delete the local report artifact after recording what failed. Do not delete the last known-good state file unless you intentionally want to re-report old items.
8. First-week ownership checklist
After the first scheduled run:
- Confirm the report contains source evidence for every item.
- Confirm duplicate suppression works on a repeated run.
- Review noisy sources and update
templates/research-watch/examples/sources.jsonor your project-local copy. - Confirm the backend did not publish public claims or change product direction without approval.
- Record any friction as a task against the template or this skill pack.