ship-docs-update
Skill445 starsChanged 10 days agoMITView on GitHub
Open one Linear DOC ticket and one draft docs PR for a single documentation feature, grounded in product-source evidence.
- Reads credentials
In this repository25 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/docs-style.mdcCursor rule
- add-docs-pageSkill
- docs-code-samplesSkill
- docs-editSkill
- docs-restructureSkill
- docs-reviewSkill
- docs-team-voiceSkill
- docs-tooling-notionSkill
- submit-integrationSkill
- update-integrations-prsSkill
- verify-against-sourceSkill
- deepagents-codeSkill
- deepagentsjsSkill
- deepagentsSkill
- openwikiSkill
- release-researchSkill
- langgraph-docsSkill
- write-timestampSkill
- pandas-patternsSkill
- deep-agentsSkill
- langchainSkill
- langgraphSkill
- langsmithSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 4 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use this skill in phase 2 when you are ready to create tracking and a draft PR for exactly one feature from a release-research report.
- Distinctive: line 15
No unrelated edits in the same PR
- Distinctive: line 17
If the research report lists multiple features, call this workflow once per feature.
- Distinctive: line 21
Before calling any write tool:
- Very specific: line 46
Create the Linear issue with create_linear_issue:
- Very specific: line 52
Create the draft PR with create_draft_docs_pr:
- Distinctive: line 60
Keep the edit surgical: the tool rejects diffs that rewrite too much of an existing page or change the other language fence
- Very specific: line 67
Call get_docs_file again for every path in the failed PR.
- Very specific: line 106
Put secrets, tokens, or .env contents into issues or PRs
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ship one docs update
Use this skill in phase 2 when you are ready to create tracking and a draft PR for exactly one feature from a release-research report.
One feature only
- One Linear issue
- One draft pull request
- One focused branch
- No unrelated edits in the same PR
If the research report lists multiple features, call this workflow once per feature. Do not invent features that research did not list. If you notice unrelated changes that should be made, leave them for a later research pass instead of shipping them now.
Preconditions (required)
Before calling any write tool:
- This run already has a
release-researchJSON report, and this feature appears there withneeds_docs: true. - You called
get_docs_fileonAGENTS.mdinlangchain-ai/docsand read it in full. That file is the style and structure authority for the PR. Do not confuse it with/memories/agent/AGENTS.md(hot memory status only). - You called
get_docs_filefor every docs path you will change and still have that exact content. - You prepared
evidence_jsonfrom the research report'sevidenceobject (the write tools re-fetch each path at the tag and refuse if the citation is missing):
{
"source_repo": "langchain-ai/deepagentsjs",
"source_tag": "deepagents@1.14.2",
"items": [
{
"path": "libs/deepagents/src/middleware/foo.ts",
"symbol": "offloadBinaryContent"
}
]
}Each item needs path plus symbol or quote. Empty evidence is rejected.
Steps
- Edit surgically from the
get_docs_filecontent, following the docs repoAGENTS.md(frontmatter, voice, no markdown indescription, Tabler icons, sentence-case headings, no contractions, no first person, language fences, navigation rules, and the rest of that file). Change only the sections needed for this feature. Do not rewrite the rest of the page. Do not invent content for the other language fence. - Create the Linear issue with
create_linear_issue:team_key="DOC"- Title: concise, feature-scoped (for example "Document OpenWiki Copilot CLI integration")
- Description: release tag, why docs must change, files to touch, acceptance criteria
- Pass
product,release_tag, andevidence_json - The tool assigns the issue to the Linear API key owner (Naomi) automatically
- Create the draft PR with
create_draft_docs_pr:- Branch:
docs/<product>-<version>-<feature-slug> - Title matches the issue scope
- Body must include a
## Linearsection withCloses [DOC-N](<issue url>)(markdown hyperlink). The tool labels the PRrelease-watch-agent. A GitHub Action runs only on that label and syncs Linear status from the Closes line (draft open → In Progress, ready for review → In Review, merged → Done, closed unmerged → Canceled), so theCloses DOC-Nlink is required. - Pass the same
evidence_json - Pass
productso language-fence validation uses the registry scope (python/js/shared) files_jsonis a JSON array of{ "path": "...", "old_content": "...", "new_content": "..." }old_contentmust be the exact string returned byget_docs_file(empty string only for a brand-new file)- Keep the edit surgical: the tool rejects diffs that rewrite too much of an existing page or change the other language fence
- Branch:
- Record the Linear URL and PR URL in product memory before starting the next feature. Only treat the ship as successful when both tools returned a
url.
If create_draft_docs_pr fails
The tool rebases stale old_content onto live main when the changed hunks still apply. When it still fails (for example old_content does not match / could not be rebased):
- Call
get_docs_fileagain for every path in the failed PR. - Re-apply the same surgical edit on that fresh content.
- Retry
create_draft_docs_pronce with the newold_content/new_content. - If the retry also fails, call
note_ship_failure_on_linear_issuewith the DOC identifier and a short reason. That appends a Ship failure section (and the LangSmith run URL when available) to the issue so a human can debug. Leave the issue open. Do not claim the feature shipped.
PR body template
## Summary
- <one sentence on the docs change>
- Triggered by <product> <release tag>
## Linear
Closes [DOC-<number>](<issue url>)
## Source evidence
- Repo: `<owner>/<repo>`
- Tag: `<release tag>`
- `<path>`: `<symbol or short quote>`
## Test plan
- [ ] Preview the changed pages
- [ ] Confirm claims against the cited product source at the tag
- [ ] Run `make lint_prose FILES="<changed mdx paths>"` when possibleThe write tools append a Source evidence section when the body omits one. Prefer writing it yourself so the citations stay next to the summary.
Do not
- Bundle multiple features into one issue or PR
- Ship before calling the
release-researchsubagent in this run - Ship a feature that is not in the research report
- Draft docs without reading the docs repo
AGENTS.mdin this run - Draft from release notes without reading product source at the tag
- Pass full page contents invented from memory (always start from
get_docs_file) - Omit
old_contentor invent a base that does not matchmain - Ship without
evidence_jsonthat points at product source at the tag - Modify
docs-release-watch/in the docs PR - Put secrets, tokens, or
.envcontents into issues or PRs - Mark the PR ready for review; leave it as a draft
- Edit
:::pythonsections for a JS-only feature, or:::jsfor a Python-only feature - Claim success without a tool-returned Linear URL and PR URL
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

