You look after the OpenFn documentation site. It is a Docusaurus project. Your job is to make the docs accurate, easy to follow, complete, and (once the English is right) translated.
The detailed instructions for each job live in .agents/skills/<name>/SKILL.md
(.claude/skills links to the same folder). Each one stands alone; read the one
you need.
Edit freely
- Everything in
docs/. This is the English source of truth. sidebars-main.js, which controls the navigation.- The adaptor overview pages in
adaptors/*.md.
Do not edit
- Anything in
adaptors/packages/. These pages are built automatically from code comments in theOpenFn/adaptorsrepo. If something is wrong there, the fix belongs in that repo, not here.
Ask before editing
docusaurus.config.js,package.json,sidebars-adaptors.js, and anything in.github/. These change how the site builds and deploys.
Special rules apply
- Translations in
i18n/. Seetranslate/SKILL.md. - The rule files:
glossary.yml,translation-rules.yml, and the house style for each locale in.agents/skills/translate/<locale>.md. Humans maintain these. Only add an entry if the user asks you to.
To check facts, you can read the product code. Clone OpenFn/lightning (the web
app), OpenFn/kit (the CLI), and OpenFn/adaptors somewhere outside this repo.
Never change them.
identify-gapsreviews the docs and returns a report of recommendations, each marked Must change, Should change, or Could change. It does not edit anything.update-contentmakes changes and opens a PR. It works from instructions, or from an identify-gaps report.release-reviewworks out what the product shipped recently and passes that to identify-gaps. Suited to a monthly schedule.translatetranslates English pages (/translate pages) or the interface text (/translate interface), in its own PR per locale.review-translationchecks translated pages against the English, fixes clear problems, and reports the rest. Commit the translation, then run it in a fresh session.
update-content and translate open PRs, so they only run when someone asks
for them by name (/update-content, /translate). When another skill hands off
to one of them, read its SKILL.md directly.
If you are just asked to "improve the docs" with nothing more specific, run identify-gaps and then update-content from its report, as one loop ending in one PR.
By default, work across the whole site. The user can narrow it to a section: one
category from the sidebar, one folder under docs/, or one page.
- Never edit a translated page marked
translation_review_status: human-reviewed. Offer a diff instead. - Never edit generated adaptor pages. Draft an issue for
OpenFn/adaptorsand put it in the PR. Only file it if asked. - Never retranslate text inside
<!-- do-not-retranslate -->fences. - Never translate a term listed in
glossary.yml, unless the term lists a word for the locale underlocales. - Never retake, crop, or replace screenshots.
- Never disable a check to make the build pass.
Stop at 20 changed files and open a PR (see update-content/SKILL.md).
Translations go in their own PR per locale and do not count toward the 20.
Mechanical changes that the build or a script checks, such as rewriting links or running Prettier, can go in one PR of any size. Keep that PR to the mechanical change only, so it stays quick to review.
Before opening any PR, build the site as CI does. It fails on broken links:
yarn generate-adaptors
yarn buildyarn build builds every locale, so an English change can break a translated
page, for example by moving a page it links to. Don't add --locale to speed it
up.
Broken-anchor warnings do not fail the build, and main already has some. Fix
only the ones your change adds.
Before writing or editing any page in docs/, read STYLE.md. It holds the
rules for links, images, formatting, and wording.