Writing an INACT page
How to add or update a page in this section. The rules exist so that a reader who knows one page can find their way in every other one, and so that a page can be checked for staleness later.
Before you write
- Check the code, not your memory. Every non-obvious claim points at a file, a config key, a table or a commit. If you cannot point at it, write a
> **TODO:**line instead of a guess. A thin honest page beats a full page with three wrong lines. - Check the big five, not one fork:
inact,ina-jadestone,ina-medco-v3,ina-jotre,ina-primaenergy. Grep each one. Differences go in the Instance differences table; what you did not check goes inverified_on. - Check that the path is live. A function that exists can be dead: the legacy query helper throws on entry in four of the five forks. Say which paths die where.
- Both locales, every time. English under
src/inact/, Bahasa Indonesia undersrc/id/inact/, the same structure, and a sidebar entry in both locales insrc/.vitepress/config.mjs. A page is not done until both exist.
The frontmatter
---
last_verified: 2026-09-06
verified_on: [inact, ina-jadestone, ina-medco-v3, ina-jotre, ina-timas]
sources:
- modules/routing/routing_handler_post.php
- templates/tracking_v2/routing_resp.htm
---verified_on lists the repositories the claims were checked against. sources are paths relative to the master repository. Update last_verified whenever you re-check the page, even if nothing changed.
The sections, in this order
For a feature or module page:
- A one-line module line and a short overview: what the feature is for, and what it does not do.
- An
::: info How this page was verifiedbox: when, on which fork, what was re-checked. - User flow or The screen: buttons, privileges, dialogs.
- How it works: entry point, handler, key functions, side effects. Link code as
https://github.com/binari-digital/inact/blob/main/<path>, never with line numbers. - Data or template contract where a file or a fixed structure is involved.
- Database tables affected: table, operation, by whom.
- Gotchas and known issues: silent failures, dead paths, validation quirks.
- Instance differences: one row per fork that differs from master. If nothing differs, say "None" and name the forks checked.
- Related: links to the neighbouring pages.
For a system page (configuration, access control, reporting) adapt the headings; keep the verification box, the tables, the gotchas and the Instance differences.
For an instance page, follow the existing six: same sections, same order.
Marking a one-off inside a page
::: warning Medco only
The "Ready to Return" tab exists only in `ina-medco-v3`.
:::Use ::: danger for something that fails or misleads, ::: warning for a difference, ::: tip for a reading aid.
Language
English page first, then the Bahasa Indonesia page. Domain terms stay in English in both: MDR, Transmittal, Document Library, sign off, routing, and every table, column and function name. Short sentences. Say the main point first.
When a ticket touches a module without a page
Write the page as part of the ticket, at the level of detail the ticket needed, with the sections above. A page that maps the module and lists its dead paths is more useful than no page. Add it to both sidebars and to the plan in plans/inact-docs.md.
Checking a page later
Run through last_verified. A page older than a year, or one whose sources changed in git since that date, gets re-checked: open the code, confirm each claim, fix the text, bump the date.