with one click
running-tend
// Tend-specific guidance for tend CI workflows. Adds non-standard workflow inclusion for usage analysis and repo conventions on top of the generic tend-* skills.
// Tend-specific guidance for tend CI workflows. Adds non-standard workflow inclusion for usage analysis and repo conventions on top of the generic tend-* skills.
Generic CI environment rules for GitHub Actions workflows. Use when operating in CI — covers security, CI monitoring, comment formatting, and investigating session logs from other runs.
Polls GitHub notifications and handles items that dedicated workflows miss — fork PR comments, cross-repo mentions, and stale unanswered items. Runs on a schedule.
Sets up tend — an autonomous junior maintainer for a GitHub repo, powered by Claude or OpenAI Codex — that reviews PRs, triages issues, and fixes CI. Creates config, generates workflows, configures secrets and branch protection via API, creates the bot account, and provisions the harness auth token (Claude OAuth or OpenAI API key). Use when setting up tend on a new repo or when asked to install/configure tend.
Investigates a specific tend GitHub Actions run by downloading its session-log artifacts and parsing the JSONL traces. Surfaces which skill tend loaded, what tools it called with what inputs, files it read or wrote, and where decisions went wrong. Use when asked to "debug a tend run", "investigate a tend run", "why did tend do X", "what did the bot do in CI", "look at the session logs", or to reconstruct tend's behavior step-by-step from a run ID, URL, or PR number.
Nightly code quality sweep — resolves bot PR conflicts, reviews recent commits, surveys existing code, checks resolved issues, and updates tend workflows.
Triages new GitHub issues — classifies, reproduces bugs, attempts conservative fixes, and comments. Use when a new issue is opened and needs automated triage.
| name | running-tend |
| description | Tend-specific guidance for tend CI workflows. Adds non-standard workflow inclusion for usage analysis and repo conventions on top of the generic tend-* skills. |
| metadata | {"internal":true} |
Repo-specific guidance for tend workflows running on tend itself. The generic
skills (tend-running-in-ci, tend-review, tend-triage, etc.) provide the
workflow framework; this skill adds tend conventions.
Standing exception granted: file directly in agent-equipped targets without
asking permission here first. Most tend consumers in data/consumers.json
qualify, as do other Claude-Code-action-using repos. The default rule (open
an issue here asking permission first) still applies when the target shows no
agent signals.
Tend has Claude-powered workflows beyond the generated tend-* set:
| Workflow | File | Schedule | Purpose |
|---|---|---|---|
review-reviewers | review-reviewers.yaml | 47 * * * * | Hourly analysis of adopter repo sessions |
These use the tend composite action and produce claude-session-logs* artifacts,
but their names don't match the tend-* prefix that scripts filter on by
default.
Pass extra prefixes when running token reports or listing runs so these workflows are included:
"${CLAUDE_PLUGIN_ROOT}/scripts/token-report.sh" 24 "review-"
TARGET_REPO=max-sixty/tend "${CLAUDE_PLUGIN_ROOT}/scripts/list-recent-runs.sh" "tend-" "review-"
claude-behavior — findings from review-reviewersreview-runs — findings from review-runsArtifact paths: -home-runner-work-tend-tend/<session-id>.jsonl
review-reviewers runs produce one session log per matrix repo in
.github/workflows/review-reviewers.yaml.
data/consumers.jsonPublic repos that have installed tend. Read by the website's data Worker
(see docs/website-data.md) to power the
currently-tending dot, activity feed, and stat strip. Needs no opt-in
because the workflow files are public.
# 1. Discover consumer repos via code search. Generated workflows pin a
# version tag (`max-sixty/tend@X.Y.Z`, or `/codex@X.Y.Z`), so search the
# bare `max-sixty/tend` token (version-agnostic; GitHub code search does
# not index `@` or `/`, so this matches both the Claude and Codex refs).
# The `.github/workflows/tend-` path filter below bounds precision.
mapfile -t REPOS < <(
gh search code 'max-sixty/tend' --limit 100 --json repository,path \
| jq -r '.[] | select(.path | startswith(".github/workflows/tend-")) | .repository.nameWithOwner' \
| sort -u
)
# 2. Resolve bot_name from each repo's .config/tend.yaml.
mkdir -p data
{
for repo in "${REPOS[@]}"; do
bot=$(gh api "repos/$repo/contents/.config/tend.yaml" --jq '.content' 2>/dev/null \
| base64 -d 2>/dev/null \
| yq '.bot_name // ""' 2>/dev/null)
[ -n "$bot" ] || continue
jq -nc --arg repo "$repo" --arg bot "$bot" '{repo: $repo, bot_name: $bot}'
done
} | jq -s . > data/consumers.json
Open a PR titled chore: refresh consumers.json if the file changed. Skip
the PR (no diff to land) when git status --porcelain data/consumers.json
is empty — git diff --quiet returns 0 for untracked paths, so the
first-run case would no-op. Code search is 10 req/min — one call covers
the whole list.
End-to-end check that a fresh install completes and the generated workflows
respond to a real issue and PR. Open references/integration-test.md and
follow the recipe in order; do not skip the cleanup step even on assertion
failure.