본문으로 건너뛰기
cccskills
무료GitHub에 공개

docs-sync

Use this skill whenever a pull request is opened, reopened, or synchronized in microsoft/apm to assess whether and how the documentation corpus must change to stay truthful with the proposed code change. Activate even when the PR title or body says nothing about docs -- the skill must run on every PR to detect silent drift between code and docs. Classifies impact as no-change, in-place edit (one to a few paragraphs), or structural change (new page or TOC reshape), then orchestrates a CDO + doc-writer + python-architect + editorial-owner + growth-hacker loop to produce a patch-ready advisory. Does NOT review code quality, security, or test coverage. Does NOT auto-merge or auto-push doc edits.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(7)

  • SKILL.md11.8 KB
  • assets/advisory-comment-template.md2.6 KB
  • assets/classifier-return-schema.json1.6 KB
  • assets/panelist-return-schema.json2.1 KB
  • evals/content-evals.json4.2 KB
  • evals/README.md1.3 KB
  • evals/trigger-evals.json2.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

docs-sync -- per-PR documentation impact panel

The docs corpus drifts silently and constantly. This skill catches drift at PR-open time, classifies its impact, and orchestrates a persona panel to produce a patch-ready advisory comment.

The pattern is A1 PANEL + B1 FAN-OUT/SYNTHESIZER + A8 ALIGNMENT LOOP. The classifier is the cost gate (~70% of PRs short-circuit to no-change with ~1 LLM call). When the panel does fan out, every agent reads a bounded context (~10 KB) -- never the full corpus.

This skill is ADVISORY. It does not gate merge, apply verdict labels, or push to the contributor's fork. The orchestrator is the sole writer to the PR: exactly one comment per run (idempotent edit-in-place), plus optional label sweeps.

Architecture invariants

  • Cost ceiling: 15 LLM calls per run. Hard-wired. The orchestrator refuses to spawn beyond. Header prints N/15 for observability.
  • Single-writer interlock. Only the orchestrator writes. Panelist subagents return JSON; they MUST NOT call any gh write command, post comments, or touch PR state.
  • Idempotent comment. Exactly one comment per run, with a stable header ## Docs sync advisory. Re-runs edit-in-place using gh pr comment --edit-last.
  • No fork-write. Companion docs PRs require Step 7's fresh responsible-human issue-scope checkpoint and open in the BASE repo; never pushed to the contributor's fork. Labels request advice, not implementation.
  • Index-not-corpus reads. Every classifier and architect agent reads .apm/docs-index.yml, NOT the corpus itself. The corpus is sampled only by the localizer (which reads the specific candidate pages) and by per-page panelists (which read one page each).
  • S7 deterministic tool bridge. The python-architect panelist MUST run real apm --help, grep, and python -c commands to verify doc claims, never assert from prose.

Roster

RoleAgentAlways active?
Classifierdoc-analyser inside docs-impact-classifierYes (every run)
Localizerdocs-impact-localizerOnly on in_place verdict
Architectdocs-impact-architectOnly on structural verdict
Writerdoc-writerPer candidate page (fan-out)
Verifierpython-architectPer candidate page (fan-out, S7)
Editorialeditorial-ownerOnce across all redrafts
Growthoss-growth-hackerOnce across all redrafts
SynthesizercdoOnce, with ALIGNMENT LOOP up to 3 redrafts

Topology

   docs-sync SKILL (orchestrator thread)
                 |
   Step 1: classify (1 LLM call, may exit here)
                 |
                 v
            verdict?
            /    |    \
   no-change  in-place  structural
       |        |          |
     EXIT       |       architect (TOC delta)
                |          |
                +----<-----+
                |
   Step 2: localize (1 LLM call) -- per-page task brief
                |
   Step 3: FAN-OUT panel via task tool
                |
       +----+----+----+----+
       v    v    v    v    v
     writer  verify edit growth
     x N    x N   once  once
       (parallel; each <=10 KB context)
                |
   Step 4: schema-validate returns
                |
   Step 5: CDO synthesize (1 LLM call)
                |
            agree?
            / | \
        revise (N<=3 redrafts) | agree
                                  |
   Step 6: emit ONE comment via safe-outputs.add-comment
   Step 7: OPTIONAL companion docs PR (structural AND fresh
           responsible-human issue-scope checkpoint)

Execution checklist

Step 1 -- Classify

Spawn ONE task: load the docs-impact-classifier skill, pass it the PR number. It returns the classifier JSON.

Validate the JSON against assets/classifier-return-schema.json. On schema failure, abort the run with a comment explaining the internal error.

If verdict is no_change: skip to Step 6 with a brief advisory ("No docs impact detected. Reason: <one-line>. LLM calls: 1/15.")

Step 2 -- Localize (in_place) or Architect (structural)

For in_place: spawn ONE task that loads the docs-impact-localizer skill with the classifier output. Returns per-page task briefs.

For structural: spawn ONE task that loads the docs-impact-architect skill with the classifier output. Returns TOC delta + new-page outlines + downstream in-place pages. THEN spawn the localizer for those downstream pages.

Step 3 -- Fan-out panel

Cascade-size mitigation (PR 1244 class). If scope_pages[] has

8 entries, the per-page fan-out at one writer call per page would approach the 15-call ceiling with no headroom for verifier redrafts. BEFORE spawning, group scope_pages[] into SECTIONS:

  • Pages under the same TOC section (e.g. all consumer/**) with the SAME conceptual fix (e.g. "rename apm update -> apm self-update in every mention") become ONE writer task with a pages_in_section[] array in its brief.
  • A 9-page rename cascade collapses to 2-3 section writer tasks.

The python-architect verifier still runs per verify_claims[] (not per page), because S7 evidence is keyed on claims, not pages.

For each page-or-section in the per-page task brief, spawn TWO parallel tasks:

  1. doc-writer task -- drafts the patch for that page's (or section's) specific edits. Output: JSON with before:, after: for each location.
  2. python-architect task -- for each verify_claims[] in the page brief, run the actual command (S7 tool bridge: apm <verb> --help, grep -n <symbol> src/). Output: JSON with claim: verified | refuted | inconclusive per claim.

In parallel with the per-page fan-out, spawn ONCE each:

  1. editorial-owner task -- receives ALL writer drafts, returns tone fixes.
  2. oss-growth-hacker task -- receives ALL writer drafts, returns ramp-clarity notes (does this read well to a cold OSS visitor).

All panelist tasks return JSON matching assets/panelist-return-schema.json. Schema-validate every return; on failure, abort.

Step 4 -- Validate

Cross-check:

  • Every verify_claims from a python-architect comes back verified or inconclusive (never refuted). If any are refuted, the doc-writer's draft is wrong; re-run the writer for that page with the refutation as context.
  • Cross-page constraints from the localizer are honored across all writer drafts.
  • All drafts are ASCII-only (per repo encoding rule).

Step 5 -- CDO synthesize

Spawn ONE task: load the cdo persona with the full panel return (writer drafts + verifier reports + editorial notes + growth notes

  • classifier verdict + (architect output if structural)) and .apm/docs-index.yml.

The CDO returns one of three verdicts:

  • agree: ship. Proceed to Step 6.
  • revise: re-spawn the writer panelists with the CDO's specific concerns as additional context. Re-run the editorial and growth passes if needed. Bounded N <= 3 redrafts. Increment a redraft counter; if it hits 3 and CDO still disagrees, ship with cdo_disagreement_noted: true.
  • ship_with_disagreement: ship as-is with the disagreement surfaced in the comment for the maintainer to weigh.

Step 6 -- Emit ONE comment

Render assets/advisory-comment-template.md with the final results. Write it via safe-outputs.add-comment. Header is exactly ## Docs sync advisory (stable for idempotent edit-in-place).

The comment MUST include the cost header:

Verdict: <verdict>  *  Pages affected: N  *  LLM calls: M/15  *  Took: Xs

Step 7 -- Optional companion PR

Only on structural verdict in a human-supervised follow-up. docs-sync-confirm is at most a request to discuss the proposal; it never ratifies scope or permits companion implementation. This applies even when an older workflow prompt calls it confirmation. Unattended label/manual-dispatch runs end with advice, not a companion PR.

Before editing, tie the companion to a real issue and a nominated scope-record comment URL. In a trusted default-branch checkout of the target repository (not the contributor branch or skill directory), probe:

node scripts/governance/eligibility.cjs --help
node scripts/governance/eligibility.cjs --repo microsoft/apm --issue N --approval-url URL

The target's authority.cjs owns record interpretation and the trusted GOVERNANCE.md roster. Do not add a package dependency, duplicate parser, or label-based roster. Missing tool, incomplete/API-failed reads, or unverifiable evidence means STOP and escalate.

The result always has authorizes_implementation: false: even an unedited scope evidence record cannot reveal deleted withdrawals. Obtain a fresh explicit confirmation from a responsible human for this issue's bounded scope, done-when, exclusions, and review contact before companion implementation. Capture its current confirmation reference; neither bot advice, a review, historical acceptance, silence, nor a label is consent. A named contact is not proof of review availability.

Only after that checkpoint:

  1. Branch name: docs-sync/companion-<PR_NUMBER> in the BASE repo.
  2. Apply the doc-writer drafts as a commit on that branch.
  3. Apply the architect's TOC delta (.apm/docs-index.yml entries + new page files + redirects on retired pages).
  4. Open a draft PR linked to the original PR, with the advisory comment text as the PR body.
  5. Reference the companion PR in the advisory comment.

The default is to recommend patches without opening a PR. Reconfirm on resume, changed scope, or uncertain withdrawal; never auto-push or merge.

Cost accounting

The orchestrator maintains a running LLM-call counter:

StepMin callsMax calls
Step 1 classify11
Step 2 localize/architect02
Step 3 fan-out (N pages)02N + 2
Step 5 CDO01 + 3 redrafts
Total115

If the counter would exceed 15, the orchestrator stops spawning, ships the partial result with cost_ceiling_hit: true, and the comment surfaces the truncation.

Anti-patterns

  • Reading the corpus instead of the index. Context budget breach.
  • Letting panelists post comments. Single-writer interlock violation.
  • Ignoring refuted verify_claims. That's silent drift you're shipping.
  • Skipping the CDO synthesis on "obvious" in-place patches. The bridges still matter.
  • Treating docs-sync-confirm or evidence JSON as ratification. Only the fresh responsible-human issue-scope checkpoint permits implementation.
  • Re-running on every push (synchronize). Wasteful. Re-apply the trigger label for re-run.

Operating modes

  • Rung 1 (label-gated, default): triggered by docs-sync label on PR. Maintainer opts in.
  • Rung 2 (default-on): triggered on every pull_request_target event. Enabled only after shadow validation.

The workflow file controls which rung is active. The skill body is identical for both.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use this skill to run a four-panel adversarial advisory review on any pull request that touches the OpenAPM specification artifact (docs/src/content/docs/specs/openapm-*.md), its inline / sidecar JSON Schemas (docs/src/content/docs/specs/schemas/*.schema.json), or the conformance fixture seed (tests/fixtures/spec-conformance/**). The panel fans out to four spec-ecosystem reviewers (swagger-openapi-editor, oci-distribution-editor, pkgmgr-registry-contract-editor, w3c-tag-architect), each running in its own agent thread, and a spec-editor synthesizer that produces a fold-now / defer-v0.1.1 / defer-v0.2 / reject list plus a ship decision keyed off a 1..10 shocked_meter scale. The orchestrator is the sole writer to the PR: ONE consolidated comment, no verdict labels, no merge gating. The panel is advisory -- it surfaces findings, prioritizes folds, and renders a ship recommendation that the maintainer weighs.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

microsoft/apm4천2026년 10월 19일 업데이트

Activate for changes to project positioning, release communication, community-facing artifacts, or breaking-change decisions in microsoft/apm. Triggers on README, MANIFESTO, PRD, CHANGELOG, release workflows, and issue templates.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

microsoft/apm4천2026년 10월 19일 업데이트

apm-usage

무료

Activate when the user asks about APM (Agent Package Manager): installing, configuring, authoring, or troubleshooting AI-agent packages, dependencies, compilation, MCP servers, policy, or any `apm` CLI command.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

microsoft/apm4천2026년 10월 19일 업데이트

auth

무료

Activate when code touches token management, credential resolution, git auth flows, GITHUB_APM_PAT, ADO_APM_PAT, AuthResolver, HostInfo, AuthContext, or any remote host authentication -- even if 'auth' isn't mentioned explicitly.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

microsoft/apm4천2026년 10월 19일 업데이트

Use this skill to post or patch ONE GitHub comment for a microsoft/apm autopilot run. It owns public vs debug body assembly and the AI disclaimer footer. Never labels, assigns, requests reviewers, or merges. Autopilot skills that write comments must load this skill and must not call gh comment APIs themselves.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

microsoft/apm4천2026년 10월 19일 업데이트

Use this skill to queue maintainer-accepted microsoft/apm issues (`status/accepted`) and fan them out through an isolated pool (default 2) of autopilot-issue-delivery-worker sessions. Any accepted type is eligible. Advisory `triage/recommended` is not authorization. Does not triage. Does not review PRs. Works in a local session, Copilot App automation, Cloud Agent, Remote Agent, or Agentic Workflow.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

microsoft/apm4천2026년 10월 19일 업데이트

microsoft의 스킬 모두 보기

이 스킬의 문제 신고