Run the nightly engineering-docs-agent pipeline. Invoked by GitHub Actions on cron and PR-merge events. Reads host config and state, dispatches 8 subagents in the documented order, opens/updates the docs PR.
How this skill is triggered — by the user, by Claude, or both
Slash command
/engineering-docs-agent:engineering-docs-agentopusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Run the full main authoring pipeline (see spec §5.3.1):
Run the full main authoring pipeline (see spec §5.3.1):
.engineering-docs-agent/state.json + .engineering-docs-agent/config.yml.(state.last_successful_run.head_sha .. HEAD).source-collector → PRs + Jira data.pr-summarizer per PR in parallel → summaries.doc_targets per lens → authoring batches.page-author per batch (parallel across lenses, serial within), passing source_paths (the PRs' changed files) for grounding.content-validator on authored paths; drop block-failures, surface warnings.fact-checker per surviving page that cites ≥1 resolvable repo source (CCE-110). Warn-only: contradictions become a "Factual-accuracy warnings" PR-body section and info-only reasons — never a dropped page, never a partial flag.gap-detector per PR (skip those in dismissed_gap_flags).state.json.docs-agent/YYYY-MM-DD PR.notifier with the run digest.This skill is invoked with no arguments. It reads the host repo's working directory.
Use the Agent tool with subagent_type=<agent-name>. Pass inputs as a JSON block in the prompt. Each subagent's contract is in agents/<name>.md.
state.current_run = { started_at: now, head_sha: HEAD, partial: false, partial_reasons: [] } (in-memory only — current_run is no longer persisted to state.json).partial_reasons, set partial: true, continue.current_run.head_sha → last_successful_run.head_sha (with completed_at timestamp). The runner writes only persistent fields to state.json via save_persistent_state and dual-writes current_run to the gitignored sibling current_run.json via save_current_run for diagnostics + test observability.state.json is staged by the runner's existing git add . && git commit path, included in the PR, and lands in main on merge. No separate promote workflow.last_successful_run written locally, but nothing reaches main. The next run reads the unchanged committed state and retries the same window — self-healing.origin/<docs-agent-branch>'s committed state.json already advanced last_successful_run.head_sha to our HEAD, exit 0 without dispatching subagents. The window was already processed in this hour (e.g., smoke-test pair, cron + dispatch collision). No state advance, no PR mutation, no notifier digest.See spec §8. Specifically: page-author content failing block-severity lint → drop that page, log, continue. PR ops fail → hard fail, state does not advance, next run retries the same window.
.engineering-docs-agent/config.yml and .engineering-docs-agent/state.json. If config is missing, exit with error "no config". If state is missing, treat last_sha as the repo's initial commit.head_sha = $(git rev-parse HEAD).origin/docs-agent/YYYY-MM-DDTHH's committed state.json already shows last_successful_run.head_sha == head_sha. If so, log a skip message and exit 0 — the window was processed by an earlier run this hour.source-collector; dispatch. Parse JSON output.pr-summarizer. Collect outputs.page-author. Collect outputs.content-validator on the union of authored/edited paths. For each block-failure, undo the page change via git and remove the path from the run's contribution; record the failure in partial_reasons and the digest.scripts/lint/citation_exists.py): dispatch fact-checker with the page and its cited sources. Append contradiction findings to current_run.fact_check_warnings; on dispatch failure record fact_checker_unavailable: <page> as info-only. This layer never blocks.gap-detector, skipping those in dismissed_gap_flags. Collect verdicts.whats_new_file summarizing the bullet list (PR summaries + gap flags).state.json with current_run.partial, current_run.partial_reasons, and head_sha.merge_outcome.notifier.docs-agent/YYYY-MM-DD based on UTC date of current_run.started_at.git checkout it, add the new commits, git push. Append-commit, no force-push.git checkout -b docs-agent/YYYY-MM-DD origin/main, commit, push, gh pr create with body summarizing the run.docs(agent): run YYYY-MM-DDTHH:MM:SS — N PRs summarized, M gaps flagged._maybe_auto_merge. Eligible = merge.policy: auto (the
default when the config block is absent) AND partial: false AND zero
fact-check warnings AND no human commits on the PR AND enough CCE-109
budget to wait out checks_grace_seconds. Check polling parses
gh pr checks --json name,state,bucket (state/bucket vocabulary, CCE-83);
zero registered checks after the grace window merges on in-run validation
(no-App-token hosts never get checks). Merge is --squash --delete-branch.
After merging, dispatch publishing.build_workflow via gh workflow run
(a GITHUB_TOKEN merge cannot fire on: push workflows). Every reason the
gate emits is info-only (a manual host emits none — the digest's
merge_outcome carries it); any failure leaves the PR open (pre-CCE-101
behavior).If partial: true, PR body MUST begin with a warning section listing partial_reasons: [...].
npx claudepluginhub theoju/engineering-docs-agent --plugin engineering-docs-agentFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.