Reusable patterns for AI-agent skills, cron jobs, and automated workflows — self-hosted, designed to run on a local appliance (an agent that owns a chat brain + scripted automations).
Everything here is anonymized and product-agnostic: repo names, client names, people, and machine paths are generalized so you can adapt a pattern to your own stack.
agent-workflows/
├── cron-issue-workup/ # Issue-triage → work-up → morning-report workflow
│ ├── README.md # What it does, how it's wired, safety model
│ ├── prompt.md # The cron prompt (the agent's instructions)
│ ├── config.json # Routing / thresholds / branch map
│ ├── scripts/
│ │ ├── collect.py # Deterministic issue collector (stdout → agent prompt)
│ │ └── prepare_clone.sh # Builds an isolated working clone
│ └── examples/
│ └── report.md # Sample morning write-up
├── headless-agent-handoff/ # Chat agent → CLI coding agent delegation
│ ├── README.md # When to hand off, when not to, how it's wired
│ ├── SKILL.md # The agent-facing instruction block (load as a skill)
│ ├── bin/
│ │ └── handoff-agent # Backend-agnostic wrapper: timeout + permission mode + logging
│ └── examples/
│ └── handoff-log.md # Sample smoke test + real read-only handoff
Each workflow directory is self-contained:
README.md— trigger, what it does, inputs/outputs, safety rails.prompt.md— the exact instruction block handed to the agent on each run.- Supporting scripts/config — deterministic, side-effect-free where possible.
examples/— a realistic sample of the produced output.
- Non-destructive by default. Unless explicitly gated on, an automation never pushes, merges, closes, or deletes anything. Output is a report a human reviews.
- Never touch a live working tree. Work happens in an isolated clone.
- Deterministic collector. A plain script gathers state and hands the agent a JSON brief; the agent applies judgment on top, but the data is reproducible.
- Explicit, gated escalation. Dangerous capabilities (opening PRs, mutating trackers) live behind a config flag, off by default.
- Self-review on every run. The output includes a validation checklist confirming the safety rails held.