Skip to content
cccskills
FreePublished on GitHub

draft-config-guide

Draft, update and publish a Tamanu user configuration guide for a module, covering its reference data, settings and permissions. Use when the user wants a configuration guide written or refreshed for a module (e.g. "write a config guide for Vaccines", "update the Medications config guide"), or wants existing System Administration documentation brought across from Slab. Authors from the codebase so the guide matches what the software does, and commits it under docs/user-manuals/config-guides/ for the author to review and raise as a pull request. Not for developer documentation or release notes (use draft-release-notes for the latter).

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (1)

  • SKILL.md7.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Your task: Draft a configuration guide

You write the configuration guides a system administrator or project manager configures a deployment from. You author them from the codebase, so what they describe matches what the software does, and commit them for the author to review.

Read .agents/docs/config-guide-format.md first and follow it for anything about what a guide looks like: structure, tables, settings blocks, callouts, version flags, screenshots, and the accuracy rules. This file is the procedure only.

Each module has three guides — 01-reference-data.md, 02-settings.md, 03-permissions.md — plus a README. The Medications guides (docs/user-manuals/config-guides/15-medications/) are the worked example.

Drafting a new guide and updating an existing one are the same job from different starting points. When updating, read the existing guides first: they carry author-written content you must preserve.

1. Establish scope, and confirm it

A module's configuration is not grouped anywhere in the codebase, and the boundary between modules is editorial. Medication settings span several schema keys; Drug reference data belongs to Medications, Dispensing and Immunisations at once.

Discover candidates:

  • Settings — packages/settings/src/schema/{global,central,facility}.ts. Search beyond the obviously-named subtree; related settings hide under other top-level keys and under features
  • Permissions — packages/constants/src/permissions.ts. Search by meaning, not prefix: a subject like SensitiveMedication sorts away from its siblings
  • Reference data — packages/constants/src/importable.ts for the types, then the importers (packages/central-server/app/admin/referenceDataImporter/), import schemas and exporters (.../admin/exporter/modelExporters/) for tab names, columns, required fields and default-when-empty behaviour. defaultProvisioningData/*.json5 has realistic example rows. The admin panel's Manage tab edits the same records (packages/central-server/app/admin/referenceDataManage.js)
  • Existing documentation — the module's Slab posts (see step 2), which can name configuration a code search misses

Then present the candidate list for the author to approve or trim before writing anything. Do not derive scope and proceed. If the module has no folder yet, propose where it sits in the module order, since adding it renumbers the modules after it (see the format doc).

2. Draft what the code cannot give you

Scope limitations, clinical caveats and the lead paragraph are not in the codebase. Draft them from the module's existing documentation and what you can see of its behaviour, then have the author correct them. Never invent clinical guidance: where you have nothing to go on, leave a marked gap.

Tamanu's existing System Administration documentation is in Slab, at https://beyond-essential.slab.com/public/topics/system-administration-clam9ygt. Slab renders its pages with JavaScript, so read them with a headless browser, as for screenshots (step 4); a plain fetch returns only the page title. Open the module's configuration guide posts, and read them for what the module covered, its narrative and its template links, but write the code-derived sections from the code rather than from Slab's wording, since Slab may describe an older version.

3. Batch the author's checkpoints

Settle scope first. Then put everything else that needs the author into one review: the drafted lead paragraph, the capabilities listed under each permission (inferred from req.ability.can() call sites), version flags (from release branch history, see llm/project-rules/release-branches.md), the red outlines you propose for each screenshot, and a request for each reference data type's example template link. A guide-authoring skill that asks a dozen separate questions will not get used.

4. Screenshots

Leave a placeholder for each image the guide needs, per the format doc. If the author provides a demo site and a login, capture the images yourself; otherwise the author captures them by hand.

To capture from a demo site:

  • Confirm first that the site holds synthetic data only, since the images are published; that it runs the version the guide documents; and which address serves the admin panel, since settings screens are there rather than on the facility frontend
  • Keep the login to the session. Never write it to a file, commit it, or put it in the PR. If a login fails, stop and check rather than retrying: repeated failures can lock a shared account
  • Browse, do not change. Never save a setting, and close forms without submitting them. Get the author's go-ahead before typing invalid input for an error-state image, or creating records a screen needs; without it, leave that placeholder
  • Use only the test patient the author names. Where that patient's records cannot show a screen, leave the placeholder rather than using another patient
  • Use a throwaway headless-browser script outside the repository, not a spec in the e2e suite
  • Capture per the format doc: cropped to the part of the screen the section is about, at twice screen resolution, with the red outlines the author chose drawn in at capture and a black border drawn around the image
  • Check each image before using it: it shows what its placeholder describes, and no real names. Save it to the images/ folder named for its guide and what it shows, replace the placeholder, and add its centred caption

5. Report gaps, never widen scope

You will find configuration a guide does not document. Report it and leave it out unless the author asks for it: an omission is often deliberate, because the configuration belongs to an adjacent module or is not yet supported. Correcting a fact the guide already documents is not widening scope — always do that.

On an update, also list screenshots in sections whose code has changed, so the author can judge whether to retake them.

6. Land it

Write the guides, update the module README and the section README, check every link and anchor still resolves, and commit. Do not open the pull request: the author reviews the diff and raises it. Title it to Tamanu's conventional commit format (llm/project-rules/pull-requests.md; docs is not an allowed type, use chore).

Then tell the author what you wrote, the configuration gaps you found, and any screenshot placeholders still to be filled and why, so they can go in the pull request description.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Check whether this card's code meets the acceptance criteria

The English summary is being prepared. Showing the original description.

beyondessential/tamanu9Updated Oct 26, 2026

Summarise the unit and e2e tests a branch/PR adds, run only those, and produce a paste-ready report (e.g. for a Linear card). Use when asked to 'summarise added tests', 'run the new tests', 'what tests did this PR add', or to prove a card's test coverage.

The English summary is being prepared. Showing the original description.

beyondessential/tamanu9Updated Oct 26, 2026

Run a quick UX/UI workshop using ASCII-art sketches

The English summary is being prepared. Showing the original description.

beyondessential/tamanu9Updated Oct 26, 2026

Write automated tests for unticked scenarios in this card's test cases

The English summary is being prepared. Showing the original description.

beyondessential/tamanu9Updated Oct 26, 2026

Review code changes on this card for likely bugs, regressions, and missed edges

The English summary is being prepared. Showing the original description.

beyondessential/tamanu9Updated Oct 26, 2026

Maintain a support docs pack — dedup, length budgets, and no splintering — and land changes as a reviewed pull request. Use when a support thread, or a hand-off from Support assist, surfaces a new resolution, a correction to an existing one, or a deployment quirk worth recording. Not for ordinary code changes.

The English summary is being prepared. Showing the original description.

beyondessential/tamanu9Updated Oct 26, 2026

See all skills by beyondessential

Report a problem with this skill